( row ) );
}
}
// テストデータのDataTableを作成
private static DataTable createTable() {
DataTable table = new DataTable();
table.Columns.AddRange( new DataColumn[] {
new DataColumn( "ItemName", typeof(string) ),
new DataColumn( "UnitPrice", typeof(decimal) ),
new DataColumn( "ItemNum", typeof(int) ),
new DataColumn( "Price", typeof(decimal), "UnitPrice * ItemNum" )
} );
foreach(object[] data in new object[][] {
new object[] { "HDD (40GB)", 1980, 1 },
new object[] { "ボールマウス", 400, 3 },
new object[] { "キーボード (白)", 980, 3 }
} ) {
DataRow row = table.NewRow();
row.ItemArray = data;
table.Rows.Add( row );
}
return table;
}
// Hashtableのテストデータを作成
private static Hashtable createHashtable() {
Hashtable hash = new Hashtable();
hash["ItemName"] = "HDD (80GB)";
hash["UnitPrice"] = 5000;
hash["ItemNum"] = 2;
hash["Price"] = 10000;
return hash;
}
}
}
改造など
いまのとこIDictionaryとDataRowの受け取りをオーバーロードで実装しているため、メソッドシグニチャを除けばまったく同じコードでかなりみっともないが、TypeをキーにしたHashtableに、テンプレート変数名から値を取り出すメソッドをくるんだdelegateを登録するように改造したりすれば他の型(ってちょっと思いつかないが)への対応もむずかしくないかと。
でも、NVelocityを先に見つけてりゃこんなんつくらんかったな。
セコメントをする