首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 類別架構:成員、存取修飾詞與繼承實作

     編輯:關於C語言

類別宣告與成員類型

類別定義新的參考型別,支援單一繼承與多介面實作。成員包含:

  • 常數、欄位、方法、屬性、事件
  • 索引子、運算子、建構函式、解構函式
  • 靜態建構函式、巢狀型別宣告

五種存取層級

修飾詞存取範圍
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("事件觸發");
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved