VB のたまご

作成日: 2015/12/03, 更新日: 2015/12/03


匿名型を勉強して、データの編集処理にうまく活用しよう

DJ.VanBoo のご機嫌レイディオ!

  •  さー、ということでね、始まりました、DJ.VanBoo の週末レイディオのお時間でございます。 早速ですが、お手紙をいただいておりますので紹介しまっしょう! えー、匿名希望の女性の方、いつも楽しく聞いています。私はトラックの運転手をしています。 この時期は雨が多くて、気持ちまでジメジメしてしまいます。何か、気分爽快になる一曲をお願いします。 ということでね、なるほど!確かね!最近雨が続いていますね。 気分的にもね、沈んでしまいがちですが、雨にも負けずと言いますし、頑張って運んでほしいですね。 そんなあなたにピッタリの曲です。それではまいりましょう、・・・


スポンサーリンク


作業用データクラスの煩雑さ

  •  ラジオから聞こえてくる音をぼんやり聞きながら、私はプログラミングしていました。細かく言うとラジオは聞いていないのですが、 雑音がほしくてラジオをかけています。
  •  今、私は、ぬいぐるみの販売管理システムについて考えていました。
  • 管理ID、商品
    1、りんご
    2、ごりら
    3、らっぱ
    
    管理ID、在庫数
    1、32
    2、18
    3、12
    

  •  今のところはこんなイメージです。そしてソースです。

  • Class Product
        Public Property ID As Integer = 0
        Public Property Name As String = String.Empty
    End Class
    
    Class Stock
        Public Property ID As Integer = 0
        Public Property Count As String = String.Empty
    End Class
    
    Dim products As New List(Of Product) From {
        New Product With {.ID = 1, .Name = "りんご"},
        New Product With {.ID = 2, .Name = "ごりら"},
        New Product With {.ID = 3, .Name = "らっぱ"}
        }
    
    Dim stocks As New List(Of Stock) From {
        New Stock With {.ID = 1, .Count = "32"},
        New Stock With {.ID = 2, .Count = "18"},
        New Stock With {.ID = 3, .Count = "12"}
        }
    

  •  データの準備に、ジェネリックリストと、オブジェクト初期化子とコレクション初期化子を使っています。 販売管理システムと言っても、データベースを扱うようなしっかりとしたアプリケーションではなくて、今の段階では、概要を掴む程度のプログラムです。 だから、データは固定で良くて、登録、変更、削除などの機能は必要ありません。

  •  こんな風に、管理する項目が1つ増えると、1つ新しくデータクラスを作らなければいけません。これは管理も大変だし見通しも良くないですね。 このように、あちこちから使うことが無く、この処理内でしか使わないという限定した条件の場合は、匿名型のデータクラスを使うと便利です。


スポンサーリンク


匿名希望の型は、こちらまで

  •  それでは匿名型のサンプルです。匿名型のデータクラスを使うと、このように変わります。
  • Dim products = {
        New With {.ID = 1, .Name = "りんご"},
        New With {.ID = 2, .Name = "ごりら"},
        New With {.ID = 3, .Name = "らっぱ"}
        }
    
    Dim stocks = {
        New With {.ID = 1, .Count = "32"},
        New With {.ID = 2, .Count = "18"},
        New With {.ID = 3, .Count = "12"}
        }
    

  •  先程書いた、型指定した時の書き方と比べると、型名が抜けたかな、という感じです。 あととても大事な事が1点ありまして、型推論に頼っています。 匿名型は、型を定義していない、型名が無いクラスです。変数宣言時に型名を指定できないので、型推論と組み合わせて使います。

  •  メソッド版の匿名メソッドというのもあります。ラムダ式という言語仕様です。 匿名型、匿名メソッドともに、クラスやメソッドの定義をしなくていいので実装しやすくなり便利です。

  •  最後までこの記事を読んでいただき、ありがとうございました。

  • スポンサーリンク