我目前正在尝试将某些vb转换为c#,而在vb代码中我有以下行:
If DateTime.TryParse(txtExpirationDate.Text, Nothing) = False Then
_isValid = False
其中,由于我对vb的了解非常有限,我认为应该在c#中读作:
if (DateTime.TryParse(txtExpirationDate.Text, null) == false)
_isValid = false;
然而,visual studio告诉我我的论点无效:
最佳重载方法匹配' System.DateTime.TryParse(string,out System.DateTime)'有一些无效的论点
我想知道是否有人愿意帮助我。我究竟做错了什么?这在c#中是否可行?如果是这样,我该怎么做?
答案 0 :(得分:4)
VB允许您使用变量或任意表达式作为out
/ ref
参数。在后一种情况下,将忽略返回的值。另一方面,C#需要一个可以写入返回值的变量。
在C#7之前,there's no way to ignore an out
parameter。因此,您需要为此目的声明一个变量(即使您不使用其值):
DateTime expirationDate;
if (DateTime.TryParse(txtExpirationDate.Text, out expirationDate) == false)
_isValid = false;