7

私のクラスには、これらのセッター/ゲッターがあります。

public int Id { get; set; }
public String ProjectName { get; set; }
public String ProjectType { get; set; }
public String Description { get; set; }
public String Status { get; set; }
public DateTime StartDate { get; set; }

DateTime は null 非許容型です。そのため、クラス コンストラクターに渡すレガシー データベースからデータを取得すると、StartDate が null の場合にエラーが発生します。

これを回避するためにどのように設計すればよいですか?

ありがとうエリック

4

1 に答える 1

14

.NET 2.0 以降では、任意の構造体を null 可能にすることができます。

 public DateTime? StartDate { get; set; }

に注意して?ください。make するコンパイラ演算子Nullable<DateTime>です。

リーダーから引き出すときは、これを行うことができます

 obj.StartDate = reader["StartDate"] as DateTime?;

null 許容型に関する詳細情報は次のとおりです。 http://www.codeproject.com/Articles/275471/Nullable-Types-in-Csharp-Net

于 2012-07-11T13:24:45.950 に答える