我可以覆蓋Convert.ToDateTime()
嗎?我不想100次或更多檢查字符串是否爲nul,如果不是,則將其轉換爲DateTime。我可以重寫這個函數來檢查是否爲null,然後將返回null otherway轉換它。我可以重寫Convert.ToDateTime()嗎?
回答
不,你不能覆蓋靜態方法。但是,你可以寫你自己的靜態方法:
// 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
- 我從來沒有非常喜歡它的寬鬆,當前文化特定的行爲。這取決於數據來自哪裏。你知道格式嗎?它會在用戶的文化中,還是在不變的文化中? (基本上,它是用戶輸入的文本,或者一些機器生成的格式?)
最好使用'.IsNullOrEmpty'作爲檢查。 – V4Vendetta 2012-04-11 06:14:54
@ V4Vendetta:它取決於期望的行爲--OP沒有說任何關於想要空字符串被認爲與空相同的方法。空字符串完全有可能表示一個錯誤。 – 2012-04-11 06:16:15
如果您確定字符串的格式正確,則可以使用DateTime.Parse
。
ToDateTime
不能被覆寫,但你可以使用TryParse
:
bool valid = DateTime.TryParse("date string", out d);
- 1. 我可以重寫PreApplicationStartMethodAttribute嗎?
- 2. 我可以重寫inline!重要嗎?
- 3. 我可以重寫接口屬性嗎?
- 4. 我可以部分重寫__setattr__嗎?
- 5. 我可以重寫UISegmentedControl的UIControlEventTouchUpInside嗎?
- 6. 我可以重寫控制器ActionAttribute嗎?
- 7. 我可以使用Zend_Db_Select重寫嗎?
- 8. 我可以重寫SqlCommand函數嗎?
- 9. 我可以讓客戶重寫類嗎?
- 10. 我可以重寫std :: hash嗎?
- 11. 我可以重寫生成的ID嗎?
- 12. 我可以重寫Android上的autotimeout嗎?
- 13. 我可以重寫jquery.load函數嗎?
- 14. 我可以重寫Magento Varien類嗎?
- 15. 可以重寫HttpContext.Current.Request.Url.AbsoluteUri嗎?
- 16. 我可以重寫setValue:forKey:?
- 17. 我可以重用UIView嗎?
- 18. 我可以將301重定向設置爲重寫規則嗎?
- 19. 我可以在不重定向的情況下重寫URL嗎?
- 20. 我可以用C重寫我昂貴的pygame函數嗎?
- 21. 重寫單元測試可以嗎?
- 22. 重寫規則可以做到嗎?
- 23. 你可以重寫system.serviceModel配置節嗎?
- 24. 重寫Set的contains()方法可以嗎?
- 25. 你可以/重寫Symfony中的Doctrine_Connection嗎?
- 26. 有人可以重寫這個callBack()嗎?
- 27. ASP.Net MVC:AuthorizeAttribute可以被重寫嗎?
- 28. 可以通過IIS重寫customErrors嗎? (7.0)
- 29. 可以重寫Customcontrol事件嗎?
- 30. 你可以重寫htaccess ReWriteRule嗎?
你能不能不要使用'DateTime.TryParse '? – V4Vendetta 2012-04-11 06:12:16