我可以覆盖Convert.ToDateTime()
吗?我不希望 100 次或更多检查字符串是否为 nul,如果不是则将其转换为 DateTime。我可以重写此函数以检查是否为 null 然后将返回 null 否则将其转换。
问问题
1052 次
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);
}
}
请注意,返回类型必须是,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 回答