none
{}の意味 RRS feed

  • 質問

  • IEnumerable.GetEnumeratorメソッドにおいて

    参考URL:https://msdn.microsoft.com/ja-jp/library/system.collections.ienumerable.getenumerator(v=vs.110).aspx

    _people = New Person(pArray.Length - 1) {}

    という記述があります。

    personクラスのコンストラクタは引数を2つ取るものしか用意されていないのですが、

    上記の記述では何が起きるのでしょうか。


    • 移動 星 睦美 2016年4月6日 8:16 .NET Framework から
    2016年4月6日 7:16

回答

  • 配列であることが分かっているのであれば、普通に配列の初期化をしているだけというのはおわかりかと思ったのですが…。

    Visual Basic における配列

    <追記>配列の要素の各Personがどう初期化されているかが疑問なんでしょうか? であれば、PersonがClassである場合、配列の各要素は全てNothingとなります。_peopleの初期化直後にDebug.Print("{0}", _people(0).firstName)などとやった場合、NullReferenceExceptionが発生します。
    2016年4月6日 7:45

すべての返信

  • _peopleはPerson型ではなく、Person配列型です。
    2016年4月6日 7:19
  • 返信ありがとうございます。

    _peopleがperson型の配列である事は理解しております。

    New Person(pArray.Length - 1) {}

    この部分で何が起きるのかを知りたいと思っております。

    2016年4月6日 7:35
  • 配列であることが分かっているのであれば、普通に配列の初期化をしているだけというのはおわかりかと思ったのですが…。

    Visual Basic における配列

    <追記>配列の要素の各Personがどう初期化されているかが疑問なんでしょうか? であれば、PersonがClassである場合、配列の各要素は全てNothingとなります。_peopleの初期化直後にDebug.Print("{0}", _people(0).firstName)などとやった場合、NullReferenceExceptionが発生します。
    2016年4月6日 7:45
  • 質問文には一切触れられていませんが、Visual Basic言語における構文の質問ですので、.NET FrameworkフォーラムよりもVisual Basicフォーラムの方が適切です。
    2016年4月6日 7:57
  • 返信ありがとうございます。

    VisualBasicにおける配列を読み、理解いたしました。

    Newがついて、かつ使用した事のない初期化方法だったので少し混乱してしまっていました。

    ありがとうございます。

    2016年4月6日 8:11
  • 失礼いたしました。

    確かにおっしゃる通りですね。

    以後、気をつけます。

    2016年4月6日 8:12
  • フォーラム オペレーターの星 睦美です。prokofiev4423 さん、こんにちは。
    スレッドの内容をフォーラムのユーザーが共有しやすいように、のちほど Visual Basic フォーラムに質問を移動させていただきます。


    フォーラム オペレーター 星 睦美 - MSDN Community Support


    • 編集済み 星 睦美 2016年4月6日 8:15 編集
    2016年4月6日 8:14
  • 参考までですが、

    Dim a = {}

    という記述もできます。この場合、aは要素なしのobject型の配列になります。


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2016年4月7日 4:33
    モデレータ