ASP.NET Lab

The Best Web, The Best Future

博客园 首页 新随笔 订阅 管理

下列指导方针有助于确保你能够正确地对参量进行验证。

为公开的、被保护的,或明确被实现的成员而验证被传递的参量。如果验证失败,抛出 System.ArgumentException 或其派生类。

这个指导方针不需要公开可见的成员中的验证代码。并且把参量传递到一个用来处理验证的内部方法中的做法是可以被接受的。

如果 null 值参量被传递并且成员并不支持 null 值(在 Visual Basic 中是 Nothing)参量,抛出 System.ArgumentNullException 异常。
验证枚举参数。

你不能够假设枚举参量的当前值是在枚举中被定义的,因为公共语言运行时(CLR)支持把任何整数值转换成一个枚举值,并且不管这些值是否是在枚举中被定义的。

不要与基于枚举的运行时类型一样来为枚举的范围检查而使用 System.Enum.IsDefined(System.Type, System.Object)方法,不过这可能在新的版本中会被改变。

在库的将来版本中能够把值添加到枚举的承载中。为数据验证而使用 IsDefined 可能是危险的,因为 IsDefined 会为新值的检查而返回 true 值,所以现有的代码(没有处理新值)将会把新值继续视为有效的输入。对输入的值是否在程序中被定义进行检查能够在该值不符合该条件的时候支持并且抛出一个异常。

明白传递易变的参量可能会在它们被验证之后被改变。

如果成员是对于安全敏感的,那么就为该可变的对象生成一个私有的拷贝并且使用这个拷贝来进行验证和处理。但是这只适用于可变的数据。而不可变的数据(如 Uri 对象)则不需要被复制。

posted on 2007-02-01 20:05  Laeb  阅读(181)  评论(0编辑  收藏  举报