如何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();
    }
}
有帮助吗?

解决方案

你可能在变量之间感到困惑 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;
}

因为你不改变 pNumberpLength, ,你可以通过值传递它们(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的基类库具有 字符串。帕德莱特 如果您指定,该方法完全符合您的要求 '0' 作为价值 paddingChar.

其他提示

在c#中,您不会分配给方法名称。相反,您使用“返回”语句。声明变量:

string retVal;
.

而不是

ZeroPad = some_value;
.

使用:

retVal = some_value;
.

和最后返回retval:

return retVal;
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top