DateTime.TryParse
我相信这更快,这意味着你不必使用丑陋的尝试/捕获:)
例如
DateTime temp; if(DateTime.TryParse(startDateTextBox.Text, out temp)) { // Yay :) } else { // Aww.. :( }
不要使用异常进行流量控制.使用DateTime.TryParse和DateTime.TryParseExact.我个人更喜欢具有特定格式的TryParseExact,但我猜有时TryParse更好.基于原始代码的示例使用:
DateTime value; if (!DateTime.TryParse(startDateTextBox.Text, out value)) { startDateTextox.Text = DateTime.Today.ToShortDateString(); }
更喜欢这种方法的原因:
更清晰的代码(它说它想要做什么)
捕获和吞咽异常的性能更好
这不会不恰当地捕获异常 - 例如OutOfMemoryException,ThreadInterruptedException.(您当前的代码可以通过捕获相关的异常来修复以避免这种情况,但使用TryParse仍然会更好.)
这是解决方案的另一种变体,如果字符串可以转换为DateTime
类型,则返回true,否则返回false.
public static bool IsDateTime(string txtDate) { DateTime tempDate; return DateTime.TryParse(txtDate, out tempDate); }