一、類的定義
C#中類是一種引用類型,用于表示具有狀態(tài)和行為的對(duì)象。類可以包含字段、屬性、方法、事件等成員。
常用的關(guān)鍵字如下:
1、public 是一個(gè)訪問(wèn)修飾符,用于指定類成員的訪問(wèn)級(jí)別。當(dāng)將類成員聲明為 public 時(shí),表示該成員可以從程序的任何地方都可以訪問(wèn)。(所有都能訪問(wèn))
2、private 是一個(gè)訪問(wèn)修飾符,用于指定類成員的訪問(wèn)級(jí)別。當(dāng)將類成員聲明為 private 時(shí),表示該成員只能在當(dāng)前類中訪問(wèn),其他類無(wú)法訪問(wèn)。(只有本類內(nèi)可以訪問(wèn))
3、protected 是一個(gè)訪問(wèn)修飾符,用于指定類成員的訪問(wèn)級(jí)別。當(dāng)將類成員聲明為 protected 時(shí),表示該成員只能在當(dāng)前類及其子類中訪問(wèn),其他類無(wú)法訪問(wèn)。(只有在子類和父類中才能訪問(wèn))
4、internal 是一個(gè)訪問(wèn)修飾符,用于指定類成員的訪問(wèn)級(jí)別。當(dāng)將類成員聲明為 internal 時(shí),表示該成員只能在當(dāng)前程序集中訪問(wèn),其他程序集無(wú)法訪問(wèn)。(只有在本項(xiàng)目中能訪問(wèn),引用該dll的項(xiàng)目無(wú)
二、類內(nèi)的成員
1、字段(Fields):字段是類的私有或公共成員,用于存儲(chǔ)類的數(shù)據(jù)。
public class MyClass
{
private int myField; // 私有字段
public int MyPublicField; // 公共字段
}
2、屬性(Properties):屬性是類的封裝手段,提供了訪問(wèn)類的字段的方法,也可以作為數(shù)據(jù)成員來(lái)訪問(wèn)。
public class MyClass
{
private int myField;
public int MyProperty { get; set; } // 自動(dòng)屬性
public int MyCustomProperty
{
get { return myField; }
set { myField = value; } // 也可以有更復(fù)雜的邏輯
}
}
//其中value是get set 中默認(rèn)使用的關(guān)鍵字
//快速定義屬性的方法:
MyCustomProperty =>myField //簡(jiǎn)單方便省略的get set
3、方法(Methods):方法是類的行為或功能的具體實(shí)現(xiàn)。public class MyClass
{
public void MyMethod()
{
// 方法體邏輯
}
}
4、事件(Events):事件是類的通知機(jī)制,允許其他類訂閱并響應(yīng)類內(nèi)部發(fā)生的事件。public class MyClass
{
public event EventHandler MyEvent; // 事件聲明
}
5、構(gòu)造函數(shù)(Constructors):構(gòu)造函數(shù)用于創(chuàng)建和初始化一個(gè)由該類創(chuàng)建的對(duì)象的特殊狀態(tài)。public class MyClass
{
public MyClass()
{
// 構(gòu)造邏輯
}
}
6、索引器(Indexers):索引器允許類像數(shù)組一樣通過(guò)索引訪問(wèn)。public class MyClass
{
public int this[int index] { get; set; }
}
關(guān)于索引器的具體是用介紹:
索引器允許一個(gè)類或結(jié)構(gòu)像數(shù)組一樣通過(guò)索引訪問(wèn)。這通常用于自定義集合或容器類,以便能夠用類似于數(shù)組的語(yǔ)法來(lái)訪問(wèn)對(duì)象。
public class MyIndexedClass
{
private int[] array = new int[5];
public int this[int index]
{
get
{
return array[index];
}
set
{
array[index] = value;
}
}
}
在上面的示例中,MyIndexedClass
類有一個(gè)私有的整數(shù)數(shù)組 array
。通過(guò)定義一個(gè)索引器,我們可以使用類似于數(shù)組的語(yǔ)法來(lái)訪問(wèn)和修改數(shù)組中的元素。
現(xiàn)在,你可以使用以下代碼來(lái)創(chuàng)建 MyIndexedClass
的實(shí)例,并使用索引器來(lái)訪問(wèn)和修改數(shù)組中的元素:
MyIndexedClass indexedClass = new MyIndexedClass();
indexedClass[0] = 10;
int firstElement = indexedClass[0]; // 獲取第一個(gè)元素(值為10)
//需要注意的是,索引器可以具有多個(gè)參數(shù),這使得它們非常靈活。
//例如,你可以定義一個(gè)雙參數(shù)索引器來(lái)訪問(wèn)二維數(shù)組或類似的數(shù)據(jù)結(jié)構(gòu)。
7、 嵌套類型(Nested Types):類內(nèi)部可以定義其他類、結(jié)構(gòu)、枚舉或接口。這些嵌套的類型在外部類的作用域內(nèi)是私有的。public class OuterClass
{
private class NestedClass { }
}
該文章在 2025/1/26 10:16:14 編輯過(guò)