检查参数的方法我有一个静态类ArgumentHelper
其可以检查,例如:ArgumentHelper.NotNull(instance, "instance")
。但它为一些标准内置.NET框架类,如果我实现我自己的班,我不能在ArgumentHelper就把检查,因为这个类将是太大。 所以我在想,我找到了解决办法:我会做一个嵌套的静态类在每一个新的做定制类:一组用于嵌套静态类
public class MyClass
{
private int x;
public MyClass (int x)
{
if (x < 0) throw new ArgumentOutOfRangeException (...);
this.x = x;
}
public static class Arg
{
public static void NotZero (MyClass mc)
{
if (mc.x == 0) throw ....
}
}
}
所以现在:
public void myMethod (MyClass mc)
{
MyClass.Arg.NotZero (mc); // will throw excweption if x == 0
do some stuff
}
这是个好主意,或你有不同的方法?
“如果我实现我自己的班,我不能放在一个检查rgumentHelper,因为这个班级会太大“ - 为什么?如果你正在检查常见的东西(无效,参数超出范围),那么我希望你会发现许多类中都使用相同的条件 - 为什么你要重复它们? – 2014-12-02 15:08:02
我假设你想实现['Debug.Assert'](http://msdn.microsoft.com/en-us/library/system.diagnostics.debug.assert%28v=vs.110%29.aspx) :http://stackoverflow.com/questions/129120/when-should-i-use-debug-assert – 2014-12-02 15:09:51
在我的自定义类我不检查常见的东西。就像我在示例中所示,我正在检查x是== 0.也许它不是很好,但对于更复杂的场景,如果我想检查3个变量,例如Point不能是0,0,0,它会产生3行代码。我想只是Point.Arg.NotZero(p) – zgnilec 2014-12-02 15:10:28