public
公共的
private
私有,类内部才能访问
protected
只修饰成员,类内部及子类内部可以访问
static
修饰类为静态类,不能实例化类
static修饰构造函数时,构造函数不能含有任何参数及修饰符
构造函数:名字和类名相同(实例,静态,私有)
internal
默认修饰符,同一个程序集内成员可以访问
abstract
abstract可以修饰类,方法,属性
抽象类不能被实例化
抽象不能用sealed修饰,sealed修饰不能被继承
抽象方法只能定义在抽象类,抽象方法只声明,不提供实现
抽象方法声明不能用virtual或者static修饰
不能在静态属性上用abstract修饰
抽象属性在非抽象派生类覆盖重写,须使用override修饰符
partial
只能修饰类,可以将一个分成部分写在不同文件,这些文件只能在同一个程序集
sealed
修饰类不能被继承,修饰方法不能被重写
virtual
修饰方法,父类可以有该方法的实现,子类可以重写改方法(注意和abstract区别)
override
表示该方法覆盖了父类的方法
readonly
修饰字段,运行时只读,修改无需编译
const
只读,编译前确定值
operator
在类或结构声明中声明运算符
base
调用构造函数,或者基类被重写的方法
// 不会被编译
/// 会被编译(影响编译速度,不影响执行速度)在调用代码时调用感知
/// <summary>
///
/// </summary>
https://blog.csdn.net/qq_36684665/article/details/80829049
https://www.bilibili.com/video/BV1f5411G7bp?p=14
StartCoroutine("BezierToTargetPosIenum",0.1f);//way1
StartCoroutine(BezierToTargetPosIenum(0.1f));//way2
/// <summary>
/// 协程测试
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
IEnumerator BezierToTargetPosIenum(float dt)
{
Debug.Log("协程测试 开始");
while (Count<10)
{
Count++;
yield return null;
}
Debug.Log("计数 结束");
yield return new WaitForSeconds(0.5f);
Debug.Log("协程测试 结束");
}
//委托
delegate int Multidelegate(int a,int b);
Multidelegate myMultidelegate;
public void TestMultidelegate()
{
myMultidelegate = AddNumber;
myMultidelegate += AddNumber;
myMultidelegate -= AddNumber;
// 没有进行任何操作是 为null
if (myMultidelegate == null) return;
Debug.Log( myMultidelegate(3, 5));
}
//接口
public interface TestInterFace1
{
void Test1();
}
public interface TestInterFace2<T>
{
void Test2(T s);
}
//使用接口
public partial class GameEntry : MonoBehaviour,TestInterFace1,TestInterFace2<int>
//接口实现
public void Test1()
{
Debug.Log("Test1");
}
public void Test2(int num)
{
Debug.Log("Test2"+num);
}
//泛型
public List<string> StrList = new List<string>();
//class struct new mono
public T GenericTest<T, U, V>(T t, U u, V v) where T :class
{
return t;
}
public void GenericTestS()
{
var test1 = GenericTest<TestSerializable, int, float>(new TestSerializable(), 10, 10f);
var tets2 = GenericTest(new TestSerializable(), 10, 10f);
}