[英]Can i override Convert.ToDateTime()?
我可以覆盖Convert.ToDateTime()
吗? 我不想检查字符串是否为 nul 100 次或更多次,如果不是则将其转换为 DateTime。 我可以覆盖这个 function 来检查是否是 null 然后将返回 null 否则转换它。
不,您不能覆盖 static 方法。 但是你可以写你自己的static 方法:
// 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
本身是不可为 null 的值类型。
您可能还想考虑使用DateTime.ParseExact
而不是Convert.ToDateTime
- 我从来都不喜欢它宽松的、特定于当前文化的行为。 不过,这取决于数据的来源。 你知道格式吗? 它会出现在用户的文化中,还是不变的文化中? (基本上,它是用户输入的文本,还是某种机器生成的格式?)
ToDateTime
不能被覆盖,但您可以使用TryParse
:
bool valid = DateTime.TryParse("date string", out d);
如果您确定字符串的格式正确,则可以改用DateTime.Parse
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.