1 回答

TA貢獻1816條經驗 獲得超4個贊
在c#中。類是主要的類型。類聲明定義新的引用類型。一個類可以從另一個類繼承。并且可以實現接口。類成員可以包括常數、字段、方法、屬性、事件、索引器、運算符、實例構造函數、析構函數、靜態構造函數和嵌套類型聲明。每個成員都有關聯的可訪問性。它控制能夠訪問該成員的程序文本區域。有五種可能的可訪問形式。
(1)public。不限制訪問。
(2)protected。盡在同一個類內?;蛟擃惖呐缮愔性L問。
(3)Internal。僅從同一個項目內訪問。
(4)protected internal。訪問限于同一個項目或派生類。
(5)Private。訪問限于本類。
2.字段。是表示與對象或類關聯的變量的成員。例子如下——
class Color
{
internal ushort redPart;
internal ushort bluePart;
internal ushort greenPart;
public Color(ushort red,ushort blue,ushort green)
{
redPart=red;
bluePart=blue;
greenPart=green;
}
.
}
此例顯示了一個Color類,該類具有名為redPart、bluePart、greenPart的內部實例字段。
3.方法。方法是實現可以由對象或類執行的計算或操作的成員。方法有一個形參表(可能為空)、一個返回值(若返回值類型為void則沒有)。并且方法可以是靜態的或是非靜態的。通過類訪問靜態方法。通過類的實例訪問實例方法。
下面代碼定義了一個Stack類。該類具有若干靜態方法(Clone和Flip)和若干實例方法(Push、Pop和ToString)。
public class Stack
{
public static Stack Clone(Stack s) {}
public static Stack Flip(Stack s) {}
public object Pop() {}
public void Push(object o) {..}
public override string ToString() {}
}
class Test
{
static void Main()
{
Stack s=New Stack();
for(int i=1;i<10;i++)
s.Push(i);
Stack flipped=Stack.Flip(s);
Stack cloned=Stack.Clone(s);
Console.WriteLine("Original stack:"+s.ToString());
Console.WriteLine("Flipped stack:"+flipped.ToString());
Console.WriteLine("Cloned stack:"+cloned.ToString());
}
}
4.屬性。屬性提供對對象或類的特性的訪問。屬性是字段的自然擴展。兩者都是具有關聯類型的命名成員。并且訪問字段和屬性的語法相同。然而。與字段不同。屬性不表示存儲位置。相反。屬性有訪問器。這些訪問器指定在他們的值被讀取或寫入時執行的語句。
屬性用屬性聲明定義。屬性聲明的第一部分看上去和字段聲明非常類似。第二部分包含一個get訪問器和/或一個set訪問器。在下面的例子中。Button類定義一個Caption屬性。
public class Button
{
private string caption;
public string Caption
{
get
{
return caption;
}
set
{
caption=value;
Repaint();
}
}
}
可讀取并寫入的屬性(如Caption)同時包含get和set訪問器。當讀取屬性值時調用訪問器。當寫入屬性值時則調用set訪問器。在set訪問器中。傳入一個名為value的隱式函數。利用該參數可以更新屬性。
利用屬性可以制造直接訪問類的成員的假象。但同時又可以對訪問過程進行設置。一般講類的字段定義為私有的。而通過設置相應的屬性訪問該私有字段。
5.事件。事件是使對象或類能夠提供通知的成員。類通過提供事件聲明來定義事件。事件聲明類似于字段聲明。但他增加了event關鍵字和一組可選的事件訪問器。此聲明的類型必須為委托類型。
委托類型的實例封裝一個或多個可調用的實體。對于實例方法??烧{用的實體由一個實例和該實例的方法組成。對于靜態方法。可調用的實體僅由一個方法組成。已知委托實例和適當的參數集。可以用參數集調用此委托實例的所有方法。
- 1 回答
- 0 關注
- 128 瀏覽
添加回答
舉報