将此转换函数从 vb 转换为 c#

convert this conversion function from vb to c#

我有一个简单的 vb 方法将字符串转换为整数,它的定义如下:

Public Function getInt(input As String) As Integer
    Int32.TryParse(input, getInt)
End Function

如何在不使用额外整数变量的情况下使其在 c# 中工作?我可以在 C# 中做同样的事情,如下所示:

 public int getInt(string input) 
    {
        int outParam = 0;
        Int32.TryParse(input, out outParam);
        return outParam;
    }

是否可以避免使用额外变量:int outParam = 0;

我已经尝试了 Int32.TryParse(input, return);Int32.TryParse(input,out return); 但没有用;

更新: 当前的 c# 方法运行良好。我不要求任何替代方案。只是想知道是否可以像我在 vb 中所做的那样自定义此方法(避免额外声明 int 变量)

你上面的代码其实还不错。我不知道你为什么要在没有 int 的情况下这样做,但你可以这样做:

public int getInt(string input)
{
    return Int32.Parse(input);
}

问题是如果字符串不能很好地解析为整数,它将抛出异常。您上面提供的代码更容错。

您可以使用:

Int32.Parse(input);

或者:

public int getInt(string input) 
{
    int outParam = 0;
    if (!Int32.TryParse(input, out outParam))
        throw new Exception("Show message!");
    return outParam;
}

您的 VB 代码使用 VB 的 'feature',这允许您将函数名称 'getInt' 用作隐式局部变量。这个隐式局部变量的最后一个值在函数退出时被 return 编辑。

您的 C# 代码是必要且正确的等效代码 - 它声明显式本地 'outParam' 用于代替函数名称,并使用显式 'return' 代替 VB 的隐式 return.

VB 函数中隐藏局部变量的赋值和 returning 可能应该被视为遗留功能,最好避免,因为它降低了清晰度。