我想修改系统方法以在其中添加条件。
方法是
System.Boolean.Parse(String value)
我希望它支持其他值,例如“1.000”和“0.000”。
由于某种原因,DataGridViewCheckBoxCell
抛出了关于“0.000不是布尔值的有效值”的异常。这是从DataGridView的内部代码中调用的...所以我无法修改调用:/
由于我的TrueValue为“true”且我的FalseValue为“false”,因此我没有将这些值放在任何地方。
这就是我想要覆盖这个方法的原因!
这样做有什么好办法吗?
答案 0 :(得分:3)
您无法覆盖此方法,因为它已声明为static
。
围绕它编写一个包装器(或Boolean
上的扩展方法),它将实现您的检查以及是否将委托传递给它。
答案 1 :(得分:0)
您想要修改Boolean
类的方法,以便将字符串传递给它吗?如果要解析字符串,还有很多其他方法可以解析它。例如,您可以像这样处理1.000
:
using System.Float;
string foo = "1.000";
float result = Float.parse( foo );
value = ( result == 1.0f );
如果您编写自己的扩展方法,那可能是最好的。如果您使用“1.000”作为表示true的值,并且这是您需要它的唯一方法,那么您应该使用像return ( arg == "1.000" )
这样的简单方法,或者首先使用布尔值。如果您有多个字符串可以处理的值,那么您将拥有不同的逻辑。如果您发布一些代码和要求,我们可能会帮助您更多。 :d