谈谈枚举和 那啥 那啥来着 哦 对对对 泛型!
生活随笔
收集整理的這篇文章主要介紹了
谈谈枚举和 那啥 那啥来着 哦 对对对 泛型!
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
枚舉類型? 是? 用于聲明一組命名的常數(shù) 的? 基本數(shù)據(jù)類型(值類型)。
enum <enum_name> { enumeration list };? 這個(gè)就是枚舉一般用法。
其中,
enum_name?指定枚舉的類型名稱。
enumeration list?是一個(gè)用逗號(hào)分隔的標(biāo)識(shí)符列表。 枚舉列表中的每個(gè)符號(hào)代表一個(gè)整數(shù)值,一個(gè)比它前面的符號(hào)大的整數(shù)值。默認(rèn)情況下,第一個(gè)枚舉符號(hào)的值是 0.例如:
enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat }; 所有枚舉類型都隱式地繼承System.Enum類型,System.Enum類型是繼承自System.ValueType類型唯一不為值類型的引用類型。 然后就是? C#?標(biāo)記枚舉(Flags)
枚舉類型? 是? 用于聲明一組命名的常數(shù) 的? 基本數(shù)據(jù)類型(值類型)。
對(duì)比枚舉值是互斥的。而位標(biāo)記集合是一種由組合出現(xiàn)的元素形成的列表,通常設(shè)計(jì)為以“位或”運(yùn)算組合新值;枚舉類型則通常表達(dá)一種語(yǔ)義相對(duì)獨(dú)立的數(shù)值集合。而以枚舉類型來(lái)實(shí)現(xiàn)位標(biāo)記集合是最為完美的組合,簡(jiǎn)稱為位枚舉。
//1,給用戶創(chuàng)建,讀取,修改和刪除的權(quán)限var?permission?=?Permission.Create?|?Permission.Read?|?Permission.Update?|?Permission.Delete;//2,去掉用戶的修改和刪除權(quán)限permission?=?permission?&?~Permission.Update;permission?=?permission?&?~Permission.Delete;????//3,給用戶加上修改的權(quán)限????permission?=?permission?|?Permission.Update;????//4,判斷用戶是否有創(chuàng)建的權(quán)限????var?isCreate?=?(permission?&?Permission.Create)?!=?0;??//或者var?isCreate?=(permission?&?Permission.Create)==?Permission.Create 俺理解的枚舉就這 接下來(lái) 那誰(shuí) 泛型!該你了 趕緊去! 定義:泛型是 通過(guò)參數(shù)化類型來(lái)實(shí)現(xiàn)在同一份代碼上操作多種數(shù)據(jù)類型 的 技術(shù)。
?利用“參數(shù)化類型”將類型抽象化,從而實(shí)現(xiàn)靈活的復(fù)用。
泛型是C#2.0以后的一種新的語(yǔ)法,不是語(yǔ)法糖
1、減少裝箱和拆箱,提高運(yùn)行效率
?List<int> list = new List<int>();
2、類型安全
? List<int> list = new List<int>();
3、代碼重用
? public static bool AreEqual<T>(T value1, T value2)
?{
??return value1.Equals(value2);
?}
?
? bool result = AreEqual<string>("A", "A");
? bool result = AreEqual<int>(5, 3); 優(yōu)點(diǎn)是:
1. 泛型增強(qiáng)了代碼的可讀性
2. 泛型有助于實(shí)現(xiàn)代碼的重用、保護(hù)類型的安全以及提高性能。
3. 我們可以創(chuàng)建泛型集合類。 4. 泛型實(shí)現(xiàn)了類型和方法的參數(shù)化
5. 我們還可以對(duì)泛型類進(jìn)行約束以訪問(wèn)特定數(shù)據(jù)類型的方法。
6. 關(guān)于泛型數(shù)據(jù)類型中使用的類型的信息可在運(yùn)行時(shí)通過(guò)使用反射獲取。 在C#2.0中,方法可以定義特定于其執(zhí)行范圍的泛型參數(shù)。
泛型方法,提供了更加多變的靈活性。泛型方法可以存在于泛型類,也可以在于非泛型類中。你可以將類型參數(shù)作為某個(gè)方法的參數(shù)、返回值、或者局部變量,該類型參數(shù)可能并不被整個(gè)類所需要,而更明確的用于某個(gè)方法。
泛型接口定義
public interface IFace<T>
??????? {
??????????? T SayHi();
??????????? void SayHello(T msg);
??????? }
??? 在.NET 框架類庫(kù)中的泛型接口,還包括 ICollection<T>、Icomparable<T>、Icomparer<T>、IDictionary<Tkey,TValue>等等。 List<T> 對(duì)應(yīng)ArrayList集合類SortedList<TKey, TValue> 對(duì)應(yīng)SortedList集合類Queue<T> 先進(jìn)先出的集合類Stack<T> 后進(jìn)先出的集合類Collection<T> 自定義泛型集合的基類Dictionary<TKey, TValue> 對(duì)應(yīng)于Hashtable集合類
類中的靜態(tài)類型,無(wú)論被使用多少次內(nèi)存中都只存在一個(gè)。靜態(tài)構(gòu)造函數(shù)只會(huì)執(zhí)行一次。
??????? 在泛型類中,T類型不同,每個(gè)不同的T類型,都會(huì)產(chǎn)生一個(gè)不同的副本,所以會(huì)產(chǎn)生不同的靜態(tài)屬性、靜態(tài)構(gòu)造函數(shù)
阿哈 有點(diǎn)多哈!腦瓜子有點(diǎn)疼 好好學(xué)習(xí)天天向上!
enum <enum_name> { enumeration list };? 這個(gè)就是枚舉一般用法。
其中,
enum_name?指定枚舉的類型名稱。
enumeration list?是一個(gè)用逗號(hào)分隔的標(biāo)識(shí)符列表。 枚舉列表中的每個(gè)符號(hào)代表一個(gè)整數(shù)值,一個(gè)比它前面的符號(hào)大的整數(shù)值。默認(rèn)情況下,第一個(gè)枚舉符號(hào)的值是 0.例如:
enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat }; 所有枚舉類型都隱式地繼承System.Enum類型,System.Enum類型是繼承自System.ValueType類型唯一不為值類型的引用類型。 然后就是? C#?標(biāo)記枚舉(Flags)
枚舉類型? 是? 用于聲明一組命名的常數(shù) 的? 基本數(shù)據(jù)類型(值類型)。
對(duì)比枚舉值是互斥的。而位標(biāo)記集合是一種由組合出現(xiàn)的元素形成的列表,通常設(shè)計(jì)為以“位或”運(yùn)算組合新值;枚舉類型則通常表達(dá)一種語(yǔ)義相對(duì)獨(dú)立的數(shù)值集合。而以枚舉類型來(lái)實(shí)現(xiàn)位標(biāo)記集合是最為完美的組合,簡(jiǎn)稱為位枚舉。
//1,給用戶創(chuàng)建,讀取,修改和刪除的權(quán)限var?permission?=?Permission.Create?|?Permission.Read?|?Permission.Update?|?Permission.Delete;//2,去掉用戶的修改和刪除權(quán)限permission?=?permission?&?~Permission.Update;permission?=?permission?&?~Permission.Delete;????//3,給用戶加上修改的權(quán)限????permission?=?permission?|?Permission.Update;????//4,判斷用戶是否有創(chuàng)建的權(quán)限????var?isCreate?=?(permission?&?Permission.Create)?!=?0;??//或者var?isCreate?=(permission?&?Permission.Create)==?Permission.Create 俺理解的枚舉就這 接下來(lái) 那誰(shuí) 泛型!該你了 趕緊去! 定義:泛型是 通過(guò)參數(shù)化類型來(lái)實(shí)現(xiàn)在同一份代碼上操作多種數(shù)據(jù)類型 的 技術(shù)。
?利用“參數(shù)化類型”將類型抽象化,從而實(shí)現(xiàn)靈活的復(fù)用。
泛型是C#2.0以后的一種新的語(yǔ)法,不是語(yǔ)法糖
1、減少裝箱和拆箱,提高運(yùn)行效率
?List<int> list = new List<int>();
2、類型安全
? List<int> list = new List<int>();
3、代碼重用
? public static bool AreEqual<T>(T value1, T value2)
?{
??return value1.Equals(value2);
?}
?
? bool result = AreEqual<string>("A", "A");
? bool result = AreEqual<int>(5, 3); 優(yōu)點(diǎn)是:
1. 泛型增強(qiáng)了代碼的可讀性
2. 泛型有助于實(shí)現(xiàn)代碼的重用、保護(hù)類型的安全以及提高性能。
3. 我們可以創(chuàng)建泛型集合類。 4. 泛型實(shí)現(xiàn)了類型和方法的參數(shù)化
5. 我們還可以對(duì)泛型類進(jìn)行約束以訪問(wèn)特定數(shù)據(jù)類型的方法。
6. 關(guān)于泛型數(shù)據(jù)類型中使用的類型的信息可在運(yùn)行時(shí)通過(guò)使用反射獲取。 在C#2.0中,方法可以定義特定于其執(zhí)行范圍的泛型參數(shù)。
泛型方法,提供了更加多變的靈活性。泛型方法可以存在于泛型類,也可以在于非泛型類中。你可以將類型參數(shù)作為某個(gè)方法的參數(shù)、返回值、或者局部變量,該類型參數(shù)可能并不被整個(gè)類所需要,而更明確的用于某個(gè)方法。
泛型接口定義
public interface IFace<T>
??????? {
??????????? T SayHi();
??????????? void SayHello(T msg);
??????? }
??? 在.NET 框架類庫(kù)中的泛型接口,還包括 ICollection<T>、Icomparable<T>、Icomparer<T>、IDictionary<Tkey,TValue>等等。 List<T> 對(duì)應(yīng)ArrayList集合類SortedList<TKey, TValue> 對(duì)應(yīng)SortedList集合類Queue<T> 先進(jìn)先出的集合類Stack<T> 后進(jìn)先出的集合類Collection<T> 自定義泛型集合的基類Dictionary<TKey, TValue> 對(duì)應(yīng)于Hashtable集合類
類中的靜態(tài)類型,無(wú)論被使用多少次內(nèi)存中都只存在一個(gè)。靜態(tài)構(gòu)造函數(shù)只會(huì)執(zhí)行一次。
??????? 在泛型類中,T類型不同,每個(gè)不同的T類型,都會(huì)產(chǎn)生一個(gè)不同的副本,所以會(huì)產(chǎn)生不同的靜態(tài)屬性、靜態(tài)構(gòu)造函數(shù)
阿哈 有點(diǎn)多哈!腦瓜子有點(diǎn)疼 好好學(xué)習(xí)天天向上!
轉(zhuǎn)載于:https://www.cnblogs.com/c5081026/p/11166031.html
總結(jié)
以上是生活随笔為你收集整理的谈谈枚举和 那啥 那啥来着 哦 对对对 泛型!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Python】读写文件的操作
- 下一篇: 数据分析--使用Web API(应用编程