. net如何知道在哪里寻找扩展方法?

本文关键字:扩展 方法 寻找 在哪里 何知道 net | 更新日期: 2023-09-27 18:03:23

我相信我理解扩展方法的概念,除了一个细节。似乎您可以使用参数上的this创建一个随机(静态)类,并使用随机static方法。我认为这个参数必须匹配您想要扩展的类(或者它继承的类)的类型。一个例子:

public static class MyExtendedMethods
{
    public static int square(this int num)
    {
        int result = 0;
        result = num * num;
        return result;
    }
}
class Program
{
    static void Main(string[] args)
    {
        int myNum = 3;
        myNum = myNum.square();
        Console.WriteLine(myNum);
    }
}

.NET如何知道在哪里找到这个类和方法(MyExtendedMethods.square())?我看不出这两门课有什么联系。它是否通过项目中的所有类来寻找可能的扩展?

. net如何知道在哪里寻找扩展方法?

它在文件顶部声明的命名空间中查找静态类,例如'using System.Linq;'(如果在当前命名空间中找不到任何内容)然后它简单地用

替换调用
MyExtendedMethods.square