我想使用DateTime.TryParse方法将字符串的datetime值放入一个Nullable中。但是当我尝试这个的时候:
DateTime? d;
bool success = DateTime.TryParse("some date text", out (DateTime)d);
编译器告诉我
'out‘参数未分类为变量
不知道我需要在这里做什么。我也尝试过:
out (DateTime)d.Value
这也不起作用。有什么想法吗?
发布于 2008-10-10 16:27:39
DateTime? d=null;
DateTime d2;
bool success = DateTime.TryParse("some date text", out d2);
if (success) d=d2;
(可能有更优雅的解决方案,但为什么不简单地执行上面的操作呢?)
发布于 2008-10-10 16:35:32
正如Jason所说,您可以创建一个正确类型的变量并传递该变量。您可能希望将其封装在您自己的方法中:
public static DateTime? TryParse(string text)
{
DateTime date;
if (DateTime.TryParse(text, out date))
{
return date;
}
else
{
return null;
}
}
..。或者,如果您喜欢条件运算符:
public static DateTime? TryParse(string text)
{
DateTime date;
return DateTime.TryParse(text, out date) ? date : (DateTime?) null;
}
或在C# 7中:
public static DateTime? TryParse(string text) =>
DateTime.TryParse(text, out var date) ? date : (DateTime?) null;
发布于 2008-10-31 21:41:14
以下是Jason建议的略微简明的版本:
DateTime? d; DateTime dt;
d = DateTime.TryParse(DateTime.Now.ToString(), out dt)? dt : (DateTime?)null;
https://stackoverflow.com/questions/192121
复制相似问题