La longitud de un método en VB.NET
-
11-12-2019 - |
Pregunta
¿Cómo VB.NET calcular la longitud de un método?¿Cómo puedo hacer esto en C#?
Este mi VB.NET código:
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
Me convertí en C# de la siguiente manera:
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();
}
}
Solución
Usted probablemente está confundido entre la variable ZeroPad
y el método ZeroPad
.Se acostumbra a escribir nombres de variable con minúscula inicial del personaje, por ejemplo, zeroPad
.Para devolver un valor desde un método, el uso de return
en C#.No estoy seguro de cuál es el propósito de su IsNumeric
subrutina o por qué tomar el valor por referencia, pero su código en C# sería similar a:
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;
}
Como no cambie los valores de pNumber
o pLength
, se pueden pasar por valor de (ByVal
en Visual Basic).Y sabiendo que ambos pNumber
y pLength
son enteros, y por lo tanto siempre numérico, el método podría reducirse a los siguientes:
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;
}
El .NET Framework es la Clase Base de las Bibliotecas tienen un De la cadena.PadRight método que hace exactamente lo que usted desea si usted especifique '0'
como el valor de paddingChar
.
Otros consejos
en C #, no asigna al nombre del método.En su lugar, use una declaración "Retorno".Declarar una variable:
string retVal;
y en lugar de
ZeroPad = some_value;
Uso:
retVal = some_value;
y por fin devuelve retval:
return retVal;