通用
变量类型默认值:int i = default; // 即=0。
初始化器:new List{ new Player("x"), new Player("xx") }; // 比Java少写个大括号。
重写(覆写)/隐藏:
声明类型 obj = new 定义子类型(); // override 不关心声明类型,而 new 则会分开调用声明类型里的方法体。
override(重写)关键词则会把基类同名方法也编译为子类方法体,但基类必须标注为abstract(无方法体)或virtual(有方法体)。
new(隐藏)关键词用于子类方法隐藏基类同名方法,转为基类后,则调用基类的方法体。
返回多个值(ValueTuple):
private (int, int) GetNumbers()
{
return (1, 2);
}
记录定义:
public record Range(string name, int? p = null)
{ public int min { get; init; } public int max { get; init; } public string x { get; init; } }
记录调用:new Range("x") { min = 1, max = 9 } // name字段外均可选。
特性:
变相支持自定义类的返回值: [MyAttribute(nameof(MyClass.MethodName))]