2012-01-05 5 views
1

私はどのように私は条件付きでその日を確認することができない、私のC#プロジェクトで、日付モデル(project.CreateDate)を持っているが要件条件チェック日付はC#で空白にしないでください。

//i know this can not be applied, because it is type of Date and string 
if (project.CreateDate != ""){ 

    //other process 

} 

のように、NULLではないので、どのように私がチェックすることができますか?

+0

which typeof '.CreateDate'ですか? –

+0

それがデフォルト(日時)にどうなるか、NULL可能な日数 – manny

答えて

6

場合.CreateDateがある:それはあなたがproject.CreateDate.HasValueを使用することができている場合、変数は、nullとして宣言されていないので、もし

if (project.CreateDate != null) // for nullable dates 
+0

Thxをアンドレアス、あなたは私の別の方法で確認するためのさまざまな考えを与えました。 – manny

+0

@mannyよろしくお願いします! –

+0

@AndreasNiedermair素敵な答え:) – PresleyDias

3

指定された日付にそれ以外の場合は設定されていないDateTimeDateTime.MinValueのデフォルト値を持つことになります。あなたはそれと比較することができます

if (project.CreateDate != DateTime.MinValue) 
{ 
    // can use date 
} 

それが実際にNULL可能日(Nullable<DateTime>または単にDateTime?)の場合、デフォルト値は、単にヌルと同等の機能となります。

if (project.CreateDate != default(DateTime)) 
{ 

} 
+0

のですか? – manny

2

日は、デフォルトの値に対してそれをテストすることができothwerise、値型ですあなたは簡単に次のチェックを行うことができSystem.Nullable<DateTime>タイプの:

if (project.CreateDate.HasValue) 

または

if (project.CreateDate != null) 

、多分

if (project.CreateDate.HasValue && DateTime.MinValue < project.CreateDate.Value) 

でこれを強化するあなたは

のために行く System.String .CreateDateのタイプがある場合はそれ以外の場合、あなたは醜いパスなど

if (project.CreateDate != DateTime.MinValue) 

または

if (DateTime.MinValue < project.CreateDate) 

を行くかもしれません

if (!string.IsNullOrEmpty(project.CreateDate)) 

または.NET 4.0とし、

if (!string.IsNullOrWhiteSpace(project.CreateDate)) 

は私が強く最初の解決のために行くSystem.Nullable<DateTime>(別名System.DateTime?)を使用することをお勧めします。 System.DateTime.MinValueの値は常に「実数」ではない可能性がありますが、アプリケーション内でを使用する可能性は失われます(アプリケーションで0を使用できない場合と比較して)

+0

ため//(project.CreateDate!= null)の場合は、はい、これは私のコードに最適ですDate型 – manny

+0

@mannyは 'デフォルト(可能System.DateTime)は' 'System.DateTime.MinValue' –

+0

と等しい値型は常にINTのようなデフォルト値は、日時については0になりましたそれは0001/01/01さmininimum値であります12:00:00 AM。完璧な –

関連する問題