C# 报错:CS1106:扩展方法必须在非泛型静态类中定义;CS1105:扩展方法必须是静态的

这里涉及一个知识点,就是C#的扩展方法
比较显著的标识就是方法参数类型定义时使用this
包含扩展方法的类及方法本身必须是静态的,否则就会报上述错误

// 报错CS1106
public class ExtensionHelper
{
  public void SelectAll(this string str)
  {
    //to do sth……
  }
}

// 报错CS1106
public class ExtensionHelper
{
  public static void SelectAll(this string str)
  {
    //to do sth……
  }
}

// 报错CS1105
public static class ExtensionHelper
{
  public void SelectAll(this string str)
  {
    //to do sth……
  }
}

// 正确形式
public static class ExtensionHelper
{
  public static void SelectAll(this string str)
  {
    //to do sth……
  }
}

关于扩展方法粗略了解自扩展方法必须在非泛型静态类中定义

posted @ 2022-04-11 23:22  几个酒菜成这样  阅读(4114)  评论(0)    收藏  举报