に私は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. C++ - アルファベット文字列 - '<'演算子オーバーロード
- 2. Reflectを使用して文字列からNullableに変換する<T>
- 3. C++文字列
- 4. C++文字列
- 5. 文字列C#の
- 6. 文字列のC#
- 7. C#の文字列
- 8. Cの文字列配列
- 9. 型キャスト地図<文字列、文字列>
- 10. のArrayList <HashMapの<文字列、文字列>>へのString []
- 11. C#string.split()別の文字列(大文字)
- 12. cの文字列と文字
- 13. たJavaのジェネリックペア<文字列、文字列>適切
- 14. 辞書の問題<文字列、文字列>
- 15. Cの文字列の配列の文字列をチェックする
- 16. フォーマット文字列C++
- 17. C - 文字列リンクリスト
- 18. C++ - アルファベット文字列
- 19. C++ ifstream文字列
- 20. スプリット文字列C++
- 21. C#文字列フォーマットプレースホルダ
- 22. ナチュラルソートC - "数字と文字を含む文字列の配列"
- 23. C++文字列配列
- 24. 文字列のC++のnext_permutation
- 25. C++の文字列のハッシュテーブル
- 26. C文字列を印刷ジャンク文字
- 27. Cプラクティステスト用文字と文字列
- 28. StringDictionaryと辞書<文字列、文字列>
- 29. デシリアライズKeyValuePair <文字列、文字列> Json.Net
- 30. c#文字列のRegex文字以外の文字
私は –
何を探していたまさに、ありがとう! Nullableインスタンスで.ToString()を呼び出すと、String.Emptyを取得できます。 Eric Lippert(この行動を実装した可能性もあります)でもこれに注意しています。 _それは受け入れられた答えでなければなりません。 –
codekaizen
@codekaizen - 私はそれを試してみると例外が発生します。そうではありません、それは受け入れられた答えではありません。おそらく、最近のバージョンのC#や.netではこれは問題ではないでしょうか? –