DataRow.Field は、.NET Framework 3.5 で拡張されたメソッドである。
DataRow といえば、アクセスする際に毎回型変換を明示的に書いていたものだが、Field メソッドを死傷することで、明示的に型を指定してアクセすることができる。
また、最大の違いは NULL 許容型がサポートされたこと。これにより取得したオブジェクトの中身が NULL であった場合でも長々と NULL チェックを書かなくても良くなった。セットした後の値の扱いは今までどおり注意を払う必要があるが、従来よりもスマートな書き方ができるようになったと思う。
DataRow.Field メソッド | msdn
http://msdn.microsoft.com/ja-jp/library/system.data.datarow.field%28v=vs.90%29.aspx
DataRow といえば、アクセスする際に毎回型変換を明示的に書いていたものだが、Field メソッドを死傷することで、明示的に型を指定してアクセすることができる。
また、最大の違いは NULL 許容型がサポートされたこと。これにより取得したオブジェクトの中身が NULL であった場合でも長々と NULL チェックを書かなくても良くなった。セットした後の値の扱いは今までどおり注意を払う必要があるが、従来よりもスマートな書き方ができるようになったと思う。
DataTable dt = new DataTable();
// なんかデータ取得。
foreach (DataRow dr in dt.Rows)
{
// 従来までの書き方。
string sHogeOld = (string)dr["HOGE"];
// 値型は変換できない場合は落ちる。
int iHogeOld = (int)dr["HOGEE"];
string sHoge = dr.Field<string>("HOGE");
// 値型でも、NULL 許容型にしておけば、いきなり落ちることはない。
int? iHoge = dr.Field<int>("HOGEE");
}
DataRow.Field メソッド | msdn
http://msdn.microsoft.com/ja-jp/library/system.data.datarow.field%28v=vs.90%29.aspx