一.類
類聲明定義新的引用類型。一個類可以從另一個類繼承,並且可以實現多個接口。
類成員可以包括:常數、字段、方法、屬性、事件、索引器、運算符、實例構造函數、析構函數、靜態構造函數和嵌套類型聲明。每個成員都有關聯的可訪問性(第 3.5 節),它控制能夠訪問該成員的程序文本區域。有五種可能的可訪問性形式。下表概述了這些形式。
形式
直觀含義
public
不限制訪問。
protected
訪問限於該成員所屬的類或從該類派生來的類型。
internal
訪問限於此程序。
protected internal
訪問限於此程序或從該成員所屬的類派生的類型。
private
訪問限於該成員所屬的類型。

//示例

using System;

class MyClass


...{


public MyClass() ...{

Console.WriteLine("Instance constructor");

}


public MyClass(int value) ...{

MyFIEld = value;

Console.WriteLine("Instance constructor");

}
~MyClass() ...{

Console.WriteLine("Destructor");

}

public const int MyConst = 12;

public int MyFIEld = 34;


public void MyMethod()...{

Console.WriteLine("MyClass.MyMethod");

}


public int MyProperty ...{


get ...{

return MyFIEld;

}


set ...{

MyFIEld = value;

}

}

~MyClass() ...{

Console.WriteLine("Destructor");

}

public const int MyConst = 12;

public int MyFIEld = 34;


public void MyMethod()...{

Console.WriteLine("MyClass.MyMethod");

}


public int MyProperty ...{


get ...{

return MyFIEld;

}


set ...{

MyFIEld = value;

}

}

class Test


...{


static void Main() ...{

// Instance constructor usage

MyClass a = new MyClass();

MyClass b = new MyClass(123);

// Constant usage

Console.WriteLine("MyConst = {0}", MyClass.MyConst);

// FIEld usage

a.MyFIEld++;

Console.WriteLine("a.MyField = {0}", a.MyFIEld);

// Method usage

a.MyMethod();

// Property usage

a.MyProperty++;

Console.WriteLine("a.MyProperty = {0}", a.MyProperty);

// Indexer usage

a[3] = a[1] = a[2];

Console.WriteLine("a[3] = {0}", a[3]);

// Event usage

a.MyEvent += new EventHandler(MyHandler);

// Overloaded Operator usage

MyClass c = a + b;

}

static void MyHandler(object sender, EventArgs e) ...{

Console.WriteLine("Test.MyHandler");

}

internal class MyNestedClass


...{}

}

顯示了這些成員的用法。