DOBON.NETプログラミング道掲示板

■34361 / 1階層)  Newの使い方間違ってますか?
□投稿者/ 魔界の仮面弁士 大御所(1251回)-(2019/11/05(Tue) 14:25:15)
  • アイコン2019/11/05(Tue) 14:33:59 編集(投稿者)

    No34359に返信(VBはじめましたさんの記事)
    > Int41 = New Integer() {1, 2, 3, 4, 5} 'Integer()
    > Dim Int42() As Integer = New Integer() {1, 2, 3, 4, 5} 'Integer()

    配列のインデックスを明示することもできますね。(各要素はゼロになる)
     Dim Int46(4) As Integer
     Dim Int47(0 To 4) As Integer
     Dim Int48(0 To -1) As Integer
     Dim Int49(-1) As Integer


    コンストラクタ引数の丸括弧やメソッド引数の丸括弧は省略できますが、
    代入式の右辺にある配列初期化子については、
    丸括弧や波括弧を省略することが出来ません。


    ' これらの括弧は省略できない
    Int46 = New Integer(4) {}
    Int46 = New Integer(4) {1, 2, 3, 4, 5}
    Int46 = New Integer(0 To 4) {}
    Int46 = New Integer(0 To 4) {1, 2, 3, 4, 5}
    Int49 = New Integer(0 To -1) {}
    Int49 = New Integer(-1) {}
    Int49 = New Integer() {}


    そして
     Dim Int43 = New Integer() {1, 2, 3, 4, 5}

     Dim Int43 As New Integer() {1, 2, 3, 4, 5}
    と記述できない理由は、『New Integer()』の時点で、
    配列ではなく「コンストラクタの指定」と見做されるためです。

    最近のバージョンでは、型推論が利用できるため、
     Dim Int43 = {1, 2, 3, 4, 5}
    と書いたとしても、Integer 型の一次元配列としてコンパイルされますね。



    また、
     Dim Int42() As Integer = New Integer()

     Dim Int42() As New Integer()
    と書けない理由は、New の丸括弧と配列の丸括弧が同居すると、
    意味が曖昧になるという理由によって禁止されているためです。
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Newの使い方間違ってますか? /VBはじめました →Re[2]: Newの使い方間違ってますか? /VBはじめました
 
上記関連ツリー

Nomalアイコン Newの使い方間違ってますか? / VBはじめました (19/11/05(Tue) 13:47) #34359
Nomalアイコン Re[1]: Newの使い方間違ってますか? / 魔界の仮面弁士 (19/11/05(Tue) 14:16) #34360
Nomalアイコン Newの使い方間違ってますか? / 魔界の仮面弁士 (19/11/05(Tue) 14:25) #34361 ←Now
  └Nomalアイコン Re[2]: Newの使い方間違ってますか? / VBはじめました (19/11/05(Tue) 16:07) #34362
    └Nomalアイコン 解決済み押し忘れ / VBはじめました (19/11/05(Tue) 16:08) #34363 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -