【问题标题】:Converting VB.NET's DateTime.TryParse(string, Nothing) to C# [duplicate]将 VB.NET 的 DateTime.TryParse(string, Nothing) 转换为 C# [重复]
【发布时间】:2026-02-01 01:25:02
【问题描述】:

我目前正在尝试将一些 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# 中是否可行,如果可以,我该怎么做?

【问题讨论】:

  • 检查Documentation。它会帮助你。
  • 我已经有了,但对我几乎没有帮助。当我遇到麻烦时,文档是我首先查看的地方。不过谢谢你的建议,感谢你的贡献???

标签: c# vb.net parsing datetime


【解决方案1】:

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;

【讨论】:

  • 谢谢@Heinzi,我知道我错过了一些愚蠢的东西。你已经拯救了这一天:)