一.類
類聲明定義新的引用類型。一個類可以從另一個類繼承,並且可以實現多個接口。
類成員可以包括:常數、字段、方法、屬性、事件、索引器、運算符、實例構造函數、析構函數、靜態構造函數和嵌套類型聲明。每個成員都有關聯的可訪問性(第 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
...{}
}
顯示了這些成員的用法。