报告类型参数中的错误的最佳实践

本文关键字:最佳 错误 报告 类型参数 | 更新日期: 2023-09-27 17:49:27

对于报告。net中泛型方法的无效类型参数是否有特定的最佳实践或其他建议?

(具体的例子:我有一个签名为 的方法
public static T GetRoles<T> (this WindowsIdentity id) where T: struct

然后我对T做一些反思,以确保它既是(a) Enum,又是(b)正确类型的Enum,因为这不是我可以在where子句中使用的约束。

对于大多数参数错误,我会做显而易见的事情,抛出带有适当参数名称和消息的ArgumentException,但由于类型参数不是常规参数,尝试抛出新的ArgumentException ("oops", "T")会使代码分析器抱怨参数名称不是。当然,如果没有更好的方法,这也不会阻止我,但是如果在这个领域有一个指定的或推荐的实践,我想知道它是什么。

报告类型参数中的错误的最佳实践

对enum的约束可以通过检查可转换接口来充分完成:

where T : struct, IConvertible