Desidero ignorare il metodo TryParse
per accettare "sì" e "no". Conosco il metodo che voglio usare (sotto) ma non so come sovrascrivere il metodo di bool
.Come posso ignorare TryParse?
... 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);
}
}
Personalmente, mi piace che i miei metodi Parse restituiscano 'Nullable <>', dove il valore restituito è 'null' se la stringa non può essere analizzata. Ciò elimina la necessità di un parametro out e rende piacevole la sintassi delle chiamate. ad es. 'bool a =" blah ".ParseBool() ?? false; ' – Greg
' Nullables' sono davvero utili per l'analisi, ma stavo cercando di ignorare il metodo 'TryParse' esistente. Ora che sto scrivendo il mio, anche io probabilmente farò qualcosa del genere. Inoltre, sto usando 'StringComparison.OrdinalIgnoreCase' ma non l'ho messo nel mio esempio solo per renderlo più pulito. Infine, perché dovresti etichettare il tuo metodo 'TryParseBoolean' quando il tuo tipo è un 'bool'? (Anche se suppongo che se si è passati a 'Nullables', avresti bisogno di tale denominazione.) – dlras2
@ cyclotis04 - Buona chiamata. A causa del parametro out, il nome 'TryParse' sarebbe effettivamente sufficiente. – Greg