我们检查方法是否正确,一般是返回对错,或者是是否抛出一个异常,大部分人不检查异常的正确性,那么这种错误在很深的堆栈中,很难查看。
Catel与一般的检查方法不同,一般是使用
public void CheckForException(object obj)
{
if (obj == null)
{
throw new ArgumentNullException("obj");
}
}
然而,Catel会记录所有的行为,因此开始的检查方式如下:
public void CheckForException(object obj) { if (obj == null) { Log.Debug("Argument 'obj' is null in CheckForException"); throw new ArgumentNullException("obj"); } }
但是如果按照这种情况来编写,则会产生很多的重复代码,因此,开发了Argument类,这个就很方便的检查参数。
public void CheckForException(object obj) { Argument.IsNotNull("obj", obj); }
如果,值是一个范围,则如下:
public void CheckForException(object obj) { Argument.IsNotNull("obj", obj); }
如果检查一个对象是否实现某个接口,则使用如下的方法
public void CheckForException(object obj) { Argument.ImplementsInterface("obj", obj, typeof(INotifyPropertyChanged)); }