河南专业网站建设公司排名百度工具
关键点:
- 定义扩展方法的类和方法必须是静态的:
- 扩展方法必须在一个静态类中定义。
- 扩展方法本身也必须是静态的。
- 第一个参数使用
this
关键字:- 扩展方法的第一个参数指定要扩展的类型,并且在这个参数前加上
this
关键字。这个参数表示方法将应用于哪个类型的实例。
- 扩展方法的第一个参数指定要扩展的类型,并且在这个参数前加上
- 调用方式:
- 虽然扩展方法是静态方法,但你可以像调用实例方法一样调用它。
- 仅适用于引用类型、值类型和接口:
- 你不能为
null
、void
或泛型类型参数定义扩展方法。
- 你不能为
- 优先级:
- 如果扩展方法与类型本身的方法发生冲突(方法签名相同),那么类型本身的方法将优先被调用。
- 命名空间:
- 扩展方法必须在使用前通过
using
语句引入其命名空间。
- 扩展方法必须在使用前通过
代码例子:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public static class tools
{public static void AtLookTarget(this Transform obj,Transform target){Vector3 var = target.position - obj.position;obj.rotation = Quaternion.LookRotation(var);}
}
使用扩展方法:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class siyausnhuchangyonff : MonoBehaviour
{public Transform lookA;public Transform lookB;void Update(){lookA.AtLookTarget(lookB);}
}