语法糖(syntactic sugar)是由英国计算机科学家Peter J. Landin发明的术语,指计算机语言中添加的某种语法。这种语法不影响语言的功能,但更方便使用。
在开发中使用语法糖能够让程序变得更短,使看起来更美观些~
空检查
public event System.Action onClick;
public void Click(){ onClick?.Invoke(); //等价于//if(onClick != null)// onClick.Invoke();
}
自动属性
public int value { get; private set; } = 1;
//等价于
//private int _number = 1;
//public int Number{
// get{ return _number; }
// private set{ _number = value; }
//}
组件懒加载
private Rigidbody2D _r2d;
public Rigidbody2D r2d => _r2d ??= GetComponent<Rigidbody2D>();
//等价于
//public Rigidbody2D r2d{
// get{
// if(_r2d == null)
// _r2d = GetComponent<Rigidbody2D>();
// return _r2d;
// }
//}
匿名函数
[SerializeField] string[] array;
private void Start(){System.Array.ForEach(array, (x) => Debug.Log(x));//等价于//for (int i = 0; i < array.Length; i++){// Debug.Log(array[i]);//}
}
动态变量
public object obj;
dynamic obj_d = obj;
int result = obj_d.Add(1, 2);
//等价于
//Type t = obj.GetType();
//MethodInfo mi = t.GetMethod("Add");
//int result = (int)mi.Invoke(obj, new object[] { 1, 2 });