类的扩展必须使用静态类,和静态函数 。
被扩展的类型为this后面类型,quyu函数为int,这样就相当于给int类型增加了一个成员函数。sishewuru函数为double,此时相当于为double类型增加了一个成员函数
static class SSS{
public static int quyu(this int i,int x)
{
return i%x;
}
public static int sishewuru(this double i)
{
if (i - (int)i < 0.5)
return (int)i;
else
return (int)i + 1;
}
} static void Main(string[] args)
{
int a;
a = 19;
Console.WriteLine(a.quyu(5));//可以用扩展方式调用
Console.WriteLine(SSS.quyu(a, 5));//也可以用普通方式调用
double b;
b = 20.65;
Console.WriteLine(b.sishewuru());
Console.WriteLine(SSS.sishewuru(b));
Console.WriteLine(5.quyu(3));//甚至可以用数字的方式进行调用,不过不推荐这种方法,容易出现问题
Console.WriteLine(5.34.sishewuru());
}