我有相对经常的方法,我只希望填充参数作为输入。如果有人调用该方法,并且参数不正确,则应该抛出错误。
有没有办法注释方法说:只允许某些值范围,或者它们不应该为空?
对于泛型,有类似“where”子句的限制(但没有那么远没有值)。
所以我想做而不是
private static void DoSomething(string string_in, object object_in,... )
{
if (null == object_in) throw new NullReferenceException("Input parameter of object is empty.");
if (String.IsNullOrEmpty(string )) throw new NullReferenceException("Input parameter string is empty.");
就像是
private static void DoSomething(string string_in, object object_in,... )
where string _in:!String.IsNullOrEmpty(string_in)
where object_in : object_in !=null
或者
private static void DoSomething(string string_in != null, object object_in != null,... )
或(我最想要的)
[Restriction string_in: value != null, value != empty]
[Restriction object_in: value != null]
[Restriction int_in: value inRange 3..9]
private static void DoSomething(string string _in, object object_in,... )
所以简而言之,有没有更好的方法将调用类型限制为一定数量的值,然后只需手动一遍又一遍地比较某些东西?