dlr*_*as2 7 c# types overriding
我想覆盖bool's TryParse方法接受"是"和"否".我知道我想要使用的方法(下面),但我不知道如何覆盖bool的方法.
... 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);
}
}
Run Code Online (Sandbox Code Playgroud)
Gre*_*reg 10
您不能覆盖静态方法.但是,您可以创建一个扩展方法.
public static bool TryParse(this string value, out bool result)
{
// For a case-insensitive compare, I recommend using
// "yes".Equals(value, StringComparison.OrdinalIgnoreCase);
if (value == "yes")
{
result = true;
return true;
}
if (value == "no")
{
result = false;
return true;
}
return bool.TryParse(value, out result);
}
Run Code Online (Sandbox Code Playgroud)
把它放在一个静态类中,并像这样调用你的代码:
string a = "yes";
bool isTrue;
bool canParse = a.TryParse(out isTrue);
Run Code Online (Sandbox Code Playgroud)