-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;
}

pNumberまたはの値は変更しないので、値でpLength渡すことができます(ByValVisual Basicの場合)。pNumberそして、とは両方とも整数であり、したがって常に数値であることを知っているpLengthので、メソッドは次のように短縮できます。

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 に答える