문제
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;
. 제휴하지 않습니다 StackOverflow