我想重寫bool
的TryParse
方法來接受「是」和「否」。我知道我想要使用的方法(下面),但我不知道如何覆蓋bool
的方法。如何覆蓋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);
}
}
個人而言,我喜歡我的Parse方法返回'Nullable <>',如果字符串不能被解析,返回值爲'null'。這消除了對out參數的需要,並且提供了很好的調用語法。 例如'bool a =「blah」.ParseBool()? false;' – Greg 2010-06-11 14:54:15
'Nullables'確實很方便解析,但我試圖覆蓋現有的'TryParse'方法。現在我正在寫我自己的東西,我可能會這樣做。此外,我正在使用'StringComparison.OrdinalIgnoreCase',但沒有把它放在我的例子中,只是爲了讓它看起來更乾淨。最後,當你的輸出類型是「bool」時,爲什麼要將你的方法標記爲「TryParseBoolean」? (雖然我想如果你改用'Nullables',你需要這個命名。) – dlras2 2010-06-11 14:59:46
@ cyclotis04 - 好的電話。由於out參數,名稱TryParse確實足夠。 – Greg 2010-06-11 15:09:55