编译器让我把这个函数设为静态
本文关键字:函数 静态 编译器 | 更新日期: 2023-09-27 18:16:33
我不知道为什么,但是visual studio的编译器要求我将这个函数设置为静态。
我有很多字符串列表
List<string> universe = new List<string>();
List<string> foo1 = new List<string>();
List<string> foo2 = new List<string>();
List<string> foo3 = new List<string>();
.
.
.
List<string> fooN = new List<string>();
一些列表可能是空的,其他有数据,我想在那些有数据的人之间相交,所以我做了这个函数:
public List<string> IntersectIgnoreEmpty(this List<string> list, List<string> other)
{
if (other.Any())
return list.Intersect(other).ToList();
return list;
}
,它给我错误,直到我把它变成静态的。我不知道为什么。
您正在定义一个扩展方法,因为您已经在第一个参数中添加了this
关键字。
扩展方法需要定义为静态类中的静态方法。
扩展方法定义为静态方法,但使用实例方法语法调用。它们的第一个参数指定方法操作的类型,参数前面有this修饰符。扩展方法只有在使用using指令显式地将命名空间导入到源代码中时才会出现在作用域中。
如果你想定义'normal'方法,删除this
关键字,它将成为你的类的实例方法。