-1

VB.NET 如何计算方法的长度?我怎样才能在 C# 中做到这一点?

这是我的VB.NET代码:

Private Function ZeroPad(ByRef pNumber As Integer, ByRef pLength As Integer) As String
    Dim Padding As Object
    If IsNumeric(pNumber) And IsNumeric(pLength) Then
        Padding = New String("0", pLength)
        ZeroPad = Padding & CStr(pNumber)
        ZeroPad = Right(ZeroPad, pLength)
    Else
        ZeroPad = CStr(pNumber)
    End If
End Function

我转换成C#如下:

private string ZeroPad(ref int pNumber, ref int pLength) {
    object Padding;
    if ((IsNumeric(pNumber) && IsNumeric(pLength))) {
        Padding = new string("0", pLength);
        return (Padding + pNumber.ToString());

        ZeroPad = ZeroPad.Substring((ZeroPad.Length - pLength));

        // In the above line, how can I take the length of a method in C#?
    }
    else {
        return pNumber.ToString();
    }
}
4

2 回答 2

3

您可能对变量ZeroPad和方法感到困惑ZeroPad。通常使用小写首字母来编写变量名,例如zeroPad. 要从方法返回值,请return在 C# 中使用。我不确定您的IsNumeric子例程的目的是什么,或者您为什么通过引用获取价值,但您在 C# 中的代码将类似于:

private string ZeroPad(ref int pNumber, ref int pLength)
{
    string padding;
    string zeroPad;
    if ((IsNumeric(pNumber) && IsNumeric(pLength)))
    {
        padding = new string('0', pLength);
        zeroPad = (padding + pNumber.ToString());

        zeroPad = zeroPad.Substring((zeroPad.Length - pLength));
    }
    else
    {
        zeroPad = pNumber.ToString();
    }
    return zeroPad;
}

由于您不更改pNumberor的值pLength,因此可以按值传递它们(ByVal在 Visual Basic 中)。并且知道pNumberpLength都是整数,因此总是数字,您的方法可以缩短为以下内容:

private string ZeroPad(int pNumber, int pLength)
{
    string zeroPad;
    string padding = new string('0', pLength);

    zeroPad = (padding + pNumber.ToString());

    zeroPad = zeroPad.Substring(zeroPad.Length - pLength);

    return zeroPad;
}

.NET Framework 的基类库有一个String.PadRight方法,如果您指定'0'paddingChar.

于 2012-05-19T10:55:52.463 回答
0

在 C# 中,您不分配给方法名称。相反,您使用“return”语句。声明一个变量:

string retVal;

而不是

ZeroPad = some_value;

利用:

retVal = some_value;

最后返回 retVal:

return retVal;
于 2012-05-19T10:51:52.820 回答