類別定義新的參考型別,支援單一繼承與多介面實作。成員包含:
| 修飾詞 | 存取範圍 |
|---|---|
public | 無限制 |
protected | 本類別及衍生類別 |
internal | 同一組件內 |
protected internal | 同組件或衍生類別 |
private | 僅本類別內 |
using System;
class MyClass {
// 建構函式
public MyClass() { Console.WriteLine("預設建構"); }
public MyClass(int value) { MyField = value; Console.WriteLine("帶參數建構"); }
~MyClass() { Console.WriteLine("解構函式"); }
// 成員
public const int MyConst = 12;
public int MyField = 34;
public void MyMethod() { Console.WriteLine("MyMethod"); }
public int MyProperty { get => MyField; set => MyField = value; }
public int this[int index] { get => 0; set => Console.WriteLine($"this[{index}] = {value}"); }
public event EventHandler MyEvent;
public static MyClass operator +(MyClass a, MyClass b) => new MyClass(a.MyField + b.MyField);
internal class MyNestedClass {}
}
class Test {
static void Main() {
MyClass a = new MyClass();
MyClass b = new MyClass(123);
Console.WriteLine(MyClass.MyConst); // 常數
a.MyField++; Console.WriteLine(a.MyField); // 欄位
a.MyMethod(); // 方法
a.MyProperty++; Console.WriteLine(a.MyProperty); // 屬性
a[3] = a[1] = a[2]; Console.WriteLine(a[3]); // 索引子
a.MyEvent += new EventHandler(MyHandler); // 事件
MyClass c = a + b; // 運算子多載
}
static void MyHandler(object sender, EventArgs e) => Console.WriteLine("事件觸發");
}