扩展方法的写法,注意需要使用静态类封装成静态方法,this入参为调用者也就是对象本身,后面需要入参再和正常些函数一样些即可:
public static class ArrayExtension
{
/// <summary>
/// 遍历执行方法
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="array"></param>
/// <param name="action"></param>
public static void Foreach<T>(this T[] array, Action<T> action)
{
//不要用Foreach遍历,foreach是迭代进行操作,执行的方法可能影响到数组本身导致异常
for(int i = 0; i < array.Length ; i++)
{
action.Invoke(array[i]);
}
}
}
这样写好以后就可以直接对象调用了,会方便很多,这里用的=>是lambda表达式,不懂百度一下吧,其实就是委托的方法,和匿名函数一个作用:
public void PrintArray()
{
int[] array = new int{1,2,3,……};
//直接调用写好的扩展方法
array.Foreach((m) =>
{
Debug.log(m);
});
}