3

オーバーライドできますConvert.ToDateTime()か?文字列がヌルであるかどうかを100回以上チェックしたくないのですが、そうでない場合は、それをDateTimeに変換します。この関数をオーバーライドして、がnullかどうかを確認し、それ以外の場合はnullを返しますか?

4

3 に答える 3

4

いいえ、静的メソッドをオーバーライドすることはできません。ただし、独自の静的メソッドを作成できます。

// TODO: Think of a better class name - this one sucks :)
public static class MoreConvert
{
    public static DateTime? ToDateTimeOrNull(string text)
    {
        return text == null ? (DateTime?) null : Convert.ToDateTime(text);
    }
}

戻り型は、それ自体がnull許容値型ではないDateTime?ためでなければならないことに注意してください。DateTime

DateTime.ParseExactまた、代わりに使用することを検討することもできますConvert.ToDateTime。私は、その寛大で現在の文化に固有の動作をひどく好きになったことがありません。ただし、データがどこから来ているかによって異なります。フォーマットを知っていますか?それはユーザーの文化にあるのでしょうか、それとも不変の文化にあるのでしょうか?(基本的に、それはユーザーが入力したテキストですか、それとも機械で生成された形式ですか?)

于 2012-04-11T06:13:10.843 に答える
2

ToDateTimeオーバーライドすることはできませんが、次を使用できますTryParse

bool valid = DateTime.TryParse("date string", out d);
于 2012-04-11T06:14:46.833 に答える
1

DateTime.Parse文字列が正しい形式であることが確実な場合は、代わりに使用できます。

于 2012-04-11T06:12:48.827 に答える