为什么需要扩展函数?
针对某一个类class编写一个扩展函数func之后,可以通过class.func()这种用小数点来连接的方式来调用到该扩展函数,就好似为这个类添加了一个成员函数一般,非常地方便。
如何编写扩展函数?
一、创建静态类
public static class CustomExpand
{
}
首先创建一个静态类,该类的名称没有硬性要求,可以任意取名。
个人比较喜欢以"类名"+"Expand"的形式来命名,比如:
针对int类,取名为IntExpand;
针对string类,取名为StringExpand;
这样比较方便管理
二、添加静态扩展函数
public static 返回类型 ExpandFunction(this 类名 对象名,参数类n 参数名n)
{
//do something
}
在该静态类中添加静态扩展函数,该函数的参数中:
第一个必须是你想添加进去的目标类,在其开头还要添加一个this,并且此参数并不会出现在函数的调用中;
在其之后即可添加任意个参数。
三、扩展函数示例
public static class IntExpand
{
public static int TestFunc(this int x,int k,int b)
{
return k * x + b;
}
}
如上,编写了一个int的扩展函数TestFunc,通过此函数返回kx+b。
private void Awake()
{
int test = 5;
Debug.Log(test.TestFunc(3, 5));
}
编写完成之后即可在int类后加一个小数点,来调用此扩展函数。
运行之后即可看到该输出结果:20 也就是3*5+5,所以我们的扩展函数是编写成功的。