扩展方法必须在非泛型静态类中定义
尝试定义扩展方法时,您可能会遇到错误:“扩展方法必须在非泛型静态类中定义。”这表明您的帮助器类不符合在 C# 中创建扩展方法所需的条件。
要纠正此问题,请查看以下准则:
-
非泛型类:
包含扩展方法的类必须声明为非泛型,这意味着它不应该在尖括号内包含类型参数(例如,公共类 LinqHelper)。
-
静态类:
扩展方法只能在静态类中定义。这意味着该类应声明为公共静态类 LinqHelper。
-
非嵌套类:
不能在嵌套类中定义扩展方法。因此,LinqHelper 类应该是一个独立的类,没有任何封闭类。
在您提供的代码中,LinqHelper 类最初被定义为泛型类,这违反了要求 #1。将其修改为公共静态类 LinqHelper 将解决该错误。
扩展方法特征:
除了类要求之外,扩展方法本身还必须遵守某些约定:
-
静态方法:
扩展方法必须在非泛型静态类中声明为静态。
-
此关键字:
扩展方法的第一个参数使用this 关键字后跟要应用扩展的类型,然后是参数名称。例如,public static IOrderedQueryable OrderBy(此 IQueryable 源,字符串属性)。
以上是为什么我的扩展方法失败并显示'扩展方法必须在非泛型静态类中定义”?的详细内容。更多信息请关注PHP中文网其他相关文章!