문제

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

값을 변경하지 않으므로 pNumber 또는 pLength, 값으로 전달할 수 있습니다(ByVal 비주얼 베이직에서).그리고 둘 다 알면서 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의 기본 클래스 라이브러리에는 문자열.패드오른쪽 지정한 경우 원하는 작업을 정확하게 수행하는 메서드 '0' 에 대한 값으로 paddingChar.

다른 팁

C #에서 메소드 이름에 지정하지 않습니다.대신 "Return"문을 사용합니다.변수를 선언하십시오 :

string retVal;
.

대신

ZeroPad = some_value;
.

사용 :

retVal = some_value;
.

및 Last Return Retval :

return retVal;
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top