無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

VB.NETを咥えてLINQをつつく2−匿名型。匿名でお願いします。

今回はLINQをつつくピヨ。 この記事は LINQをつつく2−匿名型。型推論。細かい事言わさないで! の記事と連動しているから詳しい説明はそっちを見てね。
じゃあ早速シンプルなコードご覧あれ!


’型推論
Module Module1

    Sub Main()
        Dim member = New With {.ID = 10, .Name = "Indre"}
        Console.WriteLine("Name = {0}, ID = {1}", member.Name, member.ID)
    End Sub

End Module


このサンプルのように

Dim 変数名 New With { .プロパティ名 = }

としたら生成される型は匿名型になるピヨ。 もっと正確に言うと、中括弧内はオブジェクト初期化子 と言う機能だピヨッ。合わせて使う事が多いから一緒につついたピヨね。 この機能は一見魔法のように見えるけど、タネを明かせば単純で、コンパイラが

VB$AnonymousType_0

こんな感じの型をコンパイル時に自動で作っているだけ なんだピヨ。これだけじゃあ、面白くないんでつついてわかった豆知識を披露すると、 匿名型のプロパティは読み取り専用ピヨーン。 試しに匿名型のプロパティに値を設定してみて。エラーになるはずだよ。
・・・とC#の記事で書いたけど、VB.NETのMSILはプロパティにセッターが生成されている。 まだつつく余地があるようだね。
このように機能は単純そのものなんだけど、LINQにはやっぱり必要だピヨ。 この機能がないと、一々比較用関数を作ったりする必要があるからね。 最後に、耳にタコが出来るかもしれないけど一応言っておくピヨッ。 LINQ以外では使用したら駄目。 しつこいようだけど、一時の楽のために未来の楽を捨てたら駄目だピヨ。 VB.NET使いは特に気をつけてね。 ゆめゆめ忘れないよーに。
別窓 | VB.NET | コメント:0 | トラックバック:0 | ∧top | under∨
<<LINQをつつく3−ラムダ式。ランバダ式じゃないよ。でもラム式かもね♪ | 無差別に技術をついばむ鳥 | C#を咥えてLINQをつつく2−匿名型。匿名でお願いします。>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |