- 扩展方法是对一个类追加实例方法。
- 扩展方法是static的,必须放在一个public static类中,参数列表的第一个参数必须是被追加静态方法的类型,由关键字this修饰。
- 虽然扩展方法是静态的,但只能当做实例方法调用。
- 一般SomeType类的扩展方法由SomeTypeExtension类统一收纳。
using System;
namespace _10
{
class Program
{
static void Main(string[] args)
{
int value = 4;
Console.WriteLine($"IntExtension:{value.Pow(2.5f)}");
Test test = new Test(4);
Console.WriteLine($"TestExtension:{test.Pow(2.5f)}");
}
}
class Test
{
public int value;
public Test(int value)
{
this.value = value;
}
}
static class IntExtension
{
public static double Pow(this int value, float power)
{
return Math.Pow(value, power);
}
}
static class TestExtension
{
public static double Pow(this Test test, float power)
{
return Math.Pow(test.value, power);
}
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c1aaadef731bb74e109172b74ad039c6.png#pic_center)