enter image description here public class countryController:Controller //错误:扩展方法必须在非泛型静态类中定义
答案 0 :(得分:2)
您无法在非静态类extension method
countryController
不允许这样做:
public class MyExtensions
{
public static void SomeExtension(this String str)
{
}
}
允许这样做:
public static class MyExtensions
{
public static void SomeExtension(this String str)
{
}
}
您有一个方法,其第一个参数以this
开头,您需要找到它并通过删除this
或将其移至static
辅助类来修改它。
根据C#规范:
10.6.9扩展方法
当方法的第一个参数包含
this
修饰符时,即 方法被认为是一种扩展方法。扩展方法只能 在非泛型的非嵌套静态类中声明。首先 扩展方法的参数除了可以没有修饰符 这个,参数类型不能是指针类型。
答案 1 :(得分:0)
将关键字static添加到类声明:
//这是一个非通用的静态类
public static class yourclass
{
}
创建扩展方法时需要考虑以下几点:
定义扩展方法的类必须是非泛型的, 静态和非嵌套
Every extension method must be a static method
扩展方法的第一个参数应该使用它 关键字。