谈谈枚举和 那啥 那啥来着 哦 对对对 泛型!

枚举类型  是  用于声明一组命名的常数 的  基本数据类型(值类型)。
enum <enum_name> { enumeration list };  这个就是枚举一般用法。
其中,
enum_name 指定枚举的类型名称。
enumeration list 是一个用逗号分隔的标识符列表。
枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.例如:
enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };
所有枚举类型都隐式地继承System.Enum类型,System.Enum类型是继承自System.ValueType类型唯一不为值类型的引用类型。
 
然后就是 
C# 标记枚举(Flags)
枚举类型  是  用于声明一组命名的常数 的  基本数据类型(值类型)。
对比枚举值是互斥的。而位标记集合是一种由组合出现的元素形成的列表,通常设计为以“位或”运算组合新值;枚举类型则通常表达一种语义相对独立的数值集合。而以枚举类型来实现位标记集合是最为完美的组合,简称为位枚举。

//1,给用户创建,读取,修改和删除的权限 var permission = Permission.Create | Permission.Read | Permission.Update | Permission.Delete; //2,去掉用户的修改和删除权限 permission = permission & ~Permission.Update; permission = permission & ~Permission.Delete;     //3,给用户加上修改的权限     permission = permission | Permission.Update;     //4,判断用户是否有创建的权限     var isCreate = (permission & Permission.Create) != 0;  //或者var isCreate =(permission & Permission.Create)== Permission.Create
 
俺理解的枚举就这 接下来 那谁 泛型!该你了 赶紧去!
 
定义:泛型是 通过参数化类型来实现在同一份代码上操作多种数据类型 的 技术。
  利用“参数化类型”将类型抽象化,从而实现灵活的复用。
泛型是C#2.0以后的一种新的语法,不是语法糖

1、减少装箱和拆箱,提高运行效率
 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);
优点是:
1. 泛型增强了代码的可读性
2. 泛型有助于实现代码的重用、保护类型的安全以及提高性能。
3. 我们可以创建泛型集合类。
4. 泛型实现了类型和方法的参数化
5. 我们还可以对泛型类进行约束以访问特定数据类型的方法。
6. 关于泛型数据类型中使用的类型的信息可在运行时通过使用反射获取。
在C#2.0中,方法可以定义特定于其执行范围的泛型参数。
泛型方法,提供了更加多变的灵活性。泛型方法可以存在于泛型类,也可以在于非泛型类中。你可以将类型参数作为某个方法的参数、返回值、或者局部变量,该类型参数可能并不被整个类所需要,而更明确的用于某个方法。

泛型接口定义
public interface IFace<T>
        {
            T SayHi();
            void SayHello(T msg);
        }
    在.NET 框架类库中的泛型接口,还包括 ICollection<T>、Icomparable<T>、Icomparer<T>、IDictionary<Tkey,TValue>等等。
List<T> 对应ArrayList集合类 SortedList<TKey, TValue> 对应SortedList集合类 Queue<T> 先进先出的集合类 Stack<T> 后进先出的集合类 Collection<T> 自定义泛型集合的基类 Dictionary<TKey, TValue> 对应于Hashtable集合类
类中的静态类型,无论被使用多少次内存中都只存在一个。静态构造函数只会执行一次。
        在泛型类中,T类型不同,每个不同的T类型,都会产生一个不同的副本,所以会产生不同的静态属性、静态构造函数

阿哈 有点多哈!脑瓜子有点疼 好好学习天天向上!

猜你喜欢

转载自www.cnblogs.com/c5081026/p/11166031.html