Ich möchte bool
's TryParse
Methode überschreiben, um "Ja" und "Nein" zu akzeptieren. Ich kenne die Methode, die ich verwenden möchte (unten), aber ich weiß nicht, wie man die Methode bool
überschreibt.Wie kann ich Tryparse überschreiben?
... bool TryParse(string value, out bool result)
{
if (value == "yes")
{
result = true;
return true;
}
else if (value == "no")
{
result = false;
return true;
}
else
{
return bool.TryParse(value, result);
}
}
Persönlich mag ich meine Parse-Methoden, 'Nullable <>' zurückzugeben, wobei der Rückgabewert "null" ist, wenn die Zeichenfolge nicht analysiert werden kann. Dies beseitigt die Notwendigkeit eines out-Parameters und sorgt für eine nette Aufrufsyntax. z.B. 'bool a =" bla ".ParseBool() ?? false; ' – Greg
' Nullables 'sind in der Tat praktisch zum Parsen, aber ich habe versucht, die vorhandene' TryParse'-Methode zu überschreiben. Jetzt wo ich meine eigene schreibe, tho, werde ich wahrscheinlich so etwas tun. Außerdem verwende ich 'StringComparison.OrdinalIgnoreCase', habe es aber nicht in mein Beispiel eingefügt, um es sauberer aussehen zu lassen. Schließlich, warum würden Sie Ihre Methode 'TryParseBoolean' beschriften, wenn Ihr Out-Typ ein 'bool' ist? (Obwohl ich annehme, wenn Sie auf 'Nullables' wechselten, würden Sie diese Benennung benötigen.) – dlras2
@ cyclotis04 - Guter Anruf. Wegen des out-Parameters wäre der Name 'Tryparse' in der Tat ausreichend. – Greg