に私はDateTime?
変数を持って、時には値は値がnull
かnull
DateTime
値であるとき、私は空の文字列""
返すことができるか、null
のですか?C#のNullable <DateTime>文字列
答えて
string date = myVariable.HasValue ? myVariable.Value.ToString() : string.Empty;
DateTime? MyNullableDT;
....
if (MyNullableDT.HasValue)
{
return MyNullableDT.Value.ToString();
}
return "";
DateTime? d;
// stuff manipulating d;
return d != null ? d.Value.ToString() : String.Empty;
if (aDate.HasValue)
return aDate;
else
return string.Empty;
DateTime d?;
string s = d.HasValue ? d.ToString() : string.Empty;
を書くことができ、これは値なしで、彼らは何も返さないことを、Null許容型のデフォルトの動作です:
public class Test {
public static void Main() {
System.DateTime? dt = null;
System.Console.WriteLine("<{0}>", dt.ToString());
dt = System.DateTime.Now;
System.Console.WriteLine("<{0}>", dt.ToString());
}
}
これは、これらの答えの多くは正しいが、それらのすべてが不必要に複雑であり
<>
<2009-09-18 19:16:09>
+1これを知らなかった。ただし、この方法で書式設定文字列を指定することはできません。 –
右。この場合、これは問題ではないかもしれませんが。しかし、私は昨日までこれを知らなかった。あなたがReflectorで 'Nullable
得られます。 値が論理的にnullの場合、null可能なDateTimeでToStringを呼び出した結果は、すでに空の文字列です。あなたの値でToStringを呼び出すだけです。それはあなたが欲しいものを正確に行います。
Nullable<T>
の.ToString()
をnull
とすると、空の文字列が返されます。
あなたがする必要があるのは、単に.ToString()
と呼ぶだけです。それはnull
値のNullable<T>
オブジェクトを処理します。ここで
はNullable<T>.ToString()
ためsource of .NET Frameworkです:
public override string ToString() {
return hasValue ? value.ToString() : "";
}
- 1. Nullable <Nullable>またはオプション<Nullable> C#
- 2. Reflectを使用して文字列からNullableに変換する<T>
- 3. C++:ベクトル<string>を文字配列
- 4. C#文字列内補間<appSettings>
- 5. C++ - アルファベット文字列 - '<'演算子オーバーロード
- 6. のJava 8の変換リスト<地図<文字列、文字列>マップする<文字列、地図<文字列、文字列>>
- 7. ソートアルファベット順で文字列配列 -</p> <p>文字列の配列を考える - C++ 11
- 8. <<演算子とC++の文字列のオーバーロード+演算子
- 9. C#の - 辞書<文字列、リスト<string>> DataGridの
- 10. グループ日付<辞書<文字列、文字列>>
- 11. C++文字列
- 12. C:文字列
- 13. C++文字列
- 14. 文字列のC#
- 15. 文字列のC#
- 16. 文字列のC#
- 17. C#の文字列
- 18. 文字列C#の
- 19. 辞書<文字列、辞書<文字列、文字列>>をデータテーブルに変換
- 20. Cの文字列配列
- 21. ASP.NET MVC辞書<文字列、文字列>ビューの出力
- 22. のArrayList <HashMapの<文字列、文字列>>へのString []
- 23. C#string.split()別の文字列(大文字)
- 24. 小文字のC#文字列
- 25. cの文字列と文字
- 26. 型キャスト地図<文字列、文字列>
- 27. Cの文字列の配列の文字列をチェックする
- 28. XML文字列は、私はこの<strong>文字列</strong>まし
- 29. 辞書にC#のオブジェクトのキャスト<文字列、オブジェクトに>
- 30. 辞書の問題<文字列、文字列>
私は –
何を探していたまさに、ありがとう! Nullableインスタンスで.ToString()を呼び出すと、String.Emptyを取得できます。 Eric Lippert(この行動を実装した可能性もあります)でもこれに注意しています。 _それは受け入れられた答えでなければなりません。 –
codekaizen
@codekaizen - 私はそれを試してみると例外が発生します。そうではありません、それは受け入れられた答えではありません。おそらく、最近のバージョンのC#や.netではこれは問題ではないでしょうか? –