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();
    }
}
¿Fue útil?

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;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top