元ネタ:Visual
Basic 2010 のコレクション初期化子と配列初期化子MSDN マガジン October 2009
先日、久しぶりにjavaでテストケース書いて、便所で泣くくらいスゲ
ーdisられた。
ArrayList arList= new ArrayList();
arList.add(0);
arList.add(1);
arList.add(2);
assertEquals("要素は3つ",3,arList.size());
だって、今までこうやって書いてたんだもん><
Dim
arList As
New
List(Of
Integer)
arList.Add(0)
arList.Add(1)
arList.Add(2)
AssertEquals("要素は3つ",3,arList.Count)
まぁ、C#でも以下のよう書くから、自分でも情けないやら恥ずかしいやらorz
List array = new List { 0, 1, 2};
もう、Visual Basic使いも馬鹿にされずに済むw
■コレクションの初期化子:以下の一行だけでOK!
Dim
arList As
New
List(Of
Integer)
From
{0, 1, 2}
ちなみに、配列でもOK^^
■配列の初期化子
Dim
arInt() As
Integer
= {1, 2, 3}
あと、型推論君があるのでこんな書き方もできますよっと
Dim
arInt = {1, 2, 3}
ちなみに、型推論君はコンパイル時に型を決定するので、1%とか、1Lとかサフィックスを付けてあげればコンパイル時にちゃんと型を決定してくれます。そして、IDEでちゃんと認識してくれますよん。で、いろいろと混ぜてあげても、ちゃんと最適な型にしてくれます。惚れるねぇw
◎3Lと「L」を付けたので、Logになった(3Lの周りの○と赤線ははちゅきが描画)
◎1.0R[Double型]、2L[Long型]、3%[Integer型]を並べた結果、Double型に(赤線ははちゅきが描画)

※中途半端なハンガリアン記法もdisられる原因だったのは生暖かい目で...^^;
あと、こんな書き方もできるようになりました^^
注目すべきは、宣言途中での改行にアンスコが要らないとか、(単にAddメソッド呼ぶだけみたいですが)初期化時に突っ込める記述ができること、そしてProperty、でp1、p2と書かれたコンストラクタ。New
Person("ちゅき",
"一般優良市民")と書いたとき、対応するコンストラクタがなかったら、右クリックして追加することができます^^。(Eclipseでもできるけれど^^;)。ちなみにPropertyはGet/Setを自動生成してくれます。このとき、_Nameというプライベートなメンバ変数が非表示として一緒に作られています。C系の人でアンスコを付ける癖のある人は、微妙に注意が必要です。
#アンスコは男の敵!
Public
Class
Person
???
Property Name
As
String
??? Property Description
As
String
???
Sub
New(ByVal
p1 As
String,
ByVal
p2 As
String)
??????? Name = p1
??????? Description = p2
??? End
Sub
End
Classe
Sub
Main()
??? Dim
persons As
New
List(Of
Person)
From???
??????? {??
New
Person("ちゅき",
"一般優良市民"),
???????????
New
Person("中",
"道しるべ"),
???????????
New
Person("割と普通","割と変態")
??????? }
??? For
Each
item In
persons
???????
Console.WriteLine(item.Name
& "さん:"
& item.Description)
??? Next
End
Sub
disる:disrespect、バカにしたりすることだそうな