有没有.NET中关于报告泛型方法无效类型参数的特定最佳实践或其他建议?
(具体例子:我有一个签名为)
我随后对T进行一些反思,以确保它既是枚举类型,又是正确的枚举类型,因为这不是我可以在where子句中使用的约束条件。
对于大多数参数错误,我会采取显而易见的做法,使用适当的参数名称和消息抛出一个ArgumentException异常,但由于类型参数不是常规参数,尝试抛出new ArgumentException("oops", "T")会导致代码分析器抱怨参数名称不是参数。当然,如果没有更好的方法,这并不会阻止我这样做,但如果在这个领域有指定或推荐的做法,我想知道它是什么。
(具体例子:我有一个签名为)
public static T GetRoles<T> (this WindowsIdentity id) where T: struct
我随后对T进行一些反思,以确保它既是枚举类型,又是正确的枚举类型,因为这不是我可以在where子句中使用的约束条件。
对于大多数参数错误,我会采取显而易见的做法,使用适当的参数名称和消息抛出一个ArgumentException异常,但由于类型参数不是常规参数,尝试抛出new ArgumentException("oops", "T")会导致代码分析器抱怨参数名称不是参数。当然,如果没有更好的方法,这并不会阻止我这样做,但如果在这个领域有指定或推荐的做法,我想知道它是什么。