Durata di un metodo in vb.net
-
11-12-2019 - |
Domanda
In che modo vb.net calcola la lunghezza di un metodo?Come posso farlo in c #?
Questo my vb.net Codice:
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
.
Ho convertito in C # come segue:
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();
}
}
. Soluzione
Probabilmente si è confuso tra la variabile ZeroPad
e il metodo ZeroPad
. È consuetudine scrivere nomi variabili con un carattere iniziale minuscolo, ad es. zeroPad
. Per restituire un valore da un metodo, utilizzare return
in C #. Non sono sicuro di quale sia lo scopo della tua subroutine IsNumeric
o perché prendi valore per riferimento, ma il tuo codice in C # sarebbe simile 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;
}
.
Poiché non si modifica i valori di pNumber
o pLength
, è possibile passarli per valore (ByVal
in Visual Basic). E sapendo che sia pNumber
che pLength
sono numeri interi, e quindi sempre numerici, il tuo metodo potrebbe essere abbreviato a quanto segue:
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;
}
.
Le librerie di classe base .NET Framework hanno un string.padright Metodo che fa esattamente ciò che desideri se si specifica '0'
come valore per paddingChar
.
Altri suggerimenti
In C #, non si assegna al nome del metodo.Invece usi una dichiarazione "return".Dichiarare una variabile:
string retVal;
.
e invece di
ZeroPad = some_value;
.
Uso:
retVal = some_value;
.
e all'ultimo return retval:
return retVal;
.