7

DateTime次のように、カスタム形式で aを表示するための標準的な手順を認識しています。

MessageBox.Show(dateSent.ToString("dd/MM/yyyy hh:mm:ss"));

ただし、変数を a から a に変更してDateTimenullDateTime?値を受け入れると、ToString(string)オーバーロードの定義が失われます。null 値を持つ可能性のあるデータベースから読み取るときに使用する必要がありDateTime?ます。データベースのフィールドに null 値がある場合は、変数にも null 値を割り当てる必要があります。

だから私は2つの質問があります:

DateTime?1) 好奇心から、に のオーバーロードが含まれていない理由があるかどうか知っている人はいますToString(string)か?

2)私が達成しようとしていることの代替方法を誰かが提案できますか?

4

3 に答える 3

11

DateTime?の構文糖衣でNullable<DateTime>あり、それがオーバーロードを持たない理由ToString(format)です。

DateTimeただし、プロパティを使用して基になる構造体にアクセスできますValue。ただし、その前にHasValue、値が存在するかどうかを確認するために使用します。

MessageBox.Show(dateSent.HasValue ? dateSent.Value.ToString("dd/MM/yyyy hh:mm:ss") : string.Empty)
于 2013-04-04T10:52:11.770 に答える