所以我创建了这个可以为空的变量:
private DateTime? _startDate;
Run Code Online (Sandbox Code Playgroud)
我想将一些变量解析为DateTime,然后将其分配给此变量,但VS抱怨该TryParse方法有一些无效的参数.
if (string.IsNullOrEmpty(Request.Form["StartDate"]) == false)
{
DateTime.TryParse(Request.Form["StartDate"], out _startDate);
}
else
{ _startDate = null; }
Run Code Online (Sandbox Code Playgroud)
我有语法错误或者我不能在这里使用可空变量吗?
Jon*_*eet 12
正如其他人所说,他们不是兼容的类型.我建议你创建一个包装DateTime.TryParse并返回一个新方法Nullable<DateTime>:
// Add appropriate overloads to match TryParse and TryParseExact
public static DateTime? TryParseNullableDateTime(string text)
{
DateTime value;
return DateTime.TryParse(text, out value) ? value : (DateTime?) null;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以使用:
_startDate = Helpers.TryParseNullableDateTime(Request.Form["StartDate"]);
Run Code Online (Sandbox Code Playgroud)
(无需检查null或空字符串; TryParse无论如何都会返回false.)
Yuc*_*uck 10
不,DateTime.TryParse()不接受,DateTime?因为DateTime?它确实Nullable<DateTime>- 不兼容类型.
试试这个:
if (string.IsNullOrEmpty(Request.Form["StartDate"]) == false)
{
var dtValue = new DateTime();
if (DateTime.TryParse(Request.Form["StartDate"], out dtValue)) {
_startDate = dtValue;
}
else {
_startDate = null;
}
}
else
{ _startDate = null; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6233 次 |
| 最近记录: |