null許容型は適切ですが、そもそもnull許容型ではない型にのみ適用されます。
タイプを「null許容」にするには、タイプに疑問符を追加します。例:
int? value = 5;
また、「as
」を使用することをお勧めします キャストの代わりに「キーワード」。null許容型には「as」キーワードのみを使用できるため、すでにnull許容型(文字列など)のものをキャストするか、上記のようにnull許容型を使用していることを確認してください。理由は
- 型がnull許容の場合、「
as
"キーワードはnull
を返します 値がDBNull
の場合 。 - 特定の場合に限りますが、キャストよりもわずかに高速です。これだけでは、
as
を使用するのに十分な理由にはなりません。 、しかし上記の理由と相まって、それは便利です。
このようなことをお勧めします
DataRow row = ds.Tables[0].Rows[0];
string value = row as string;
上記の場合、row
DBNull
として返されます 、次にvalue
null
になります 例外をスローする代わりに。 DBクエリが返される列/タイプを変更する場合は、 as
を使用することに注意してください。 コードが黙って失敗する原因になります 値を単純にするnull
誤ったデータが返されたときに適切な例外をスローするのではなく、コードベースの進化に合わせてデータの整合性を確保するために、他の方法でクエリを検証するためのテストを実施することをお勧めします。