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

枚举类型  是  用于声明一组命名的常数 的  基本数据类型(值类型)。
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类型,都会产生一个不同的副本,所以会产生不同的静态属性、静态构造函数

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

转载于:https://www.cnblogs.com/c5081026/p/11166031.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569174.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python3 shutil模块

# -*- coding:utf-8 -*- # Author: Evan Mi import shutil """ 主要作用是拷贝文件、拷贝文件的权限、状态信息以及压缩文件、移动文件、删除文件 """# 将一个文件对象的内容拷贝到另一个文件对象中,可以部分内容 """ f1 open(r…

mini2440烧写nor flash

1. 安装Setup_JLinkARM_V440.exe 2. 打开JLINK ARM 3. File->Open Project&#xff0c;打开 s3c2440a_embedclub.jflash4. Options->Project settings... 选择 Flash&#xff0c;点击 Select flash device&#xff0c;选中开发板对应的 Nor Flash 芯片型号。比 如 S29AL0…

软件设计师--判定覆盖,判定条件覆盖,条件组合覆盖--一个栗子

针对上图的一个判断条件&#xff0c;在这里将分别讨论判定覆盖、判定条件覆盖、条件组合覆盖的情况&#xff1a; 设T1A>3,T2B>3;为该判定节点的两个子条件。 (一&#xff09;判定覆盖&#xff1a; 所谓的判定覆盖就是让判定的真分支和假分支各执行一次&#xff0c;只要…

sqliteman install parameter

1、安装前准备系统要求&#xff1a;linuxQt库版本&#xff1a;一般都有2、安装文件 官网自行下载3、安装1&#xff09;这里用的pscp pscp .\sqliteman-1.2.2.tar.gz root192.168.30.140:/root/from_pscp2&#xff09;tar xf sqliteman-1.2.2.tar.gz3&#xff09;执行 cmake -D…

python3 多继承搜索__init__方法的两种策略

继承情形一&#xff1a;测试代码如下&#xff1a; class A(object):def __init__(self):print(A)class B(object):def __init__(self):print(B)class C(A):def __init__(self):print(C)class D(B): def __init__(self):print(D)class E(C, D):pass执行当前代码 xE()&#xff0c…

Unity Shader 屏幕后效果——Bloom外发光

Bloom的原理很简单&#xff0c;主要是提取渲染图像中的亮部区域&#xff0c;并对亮部区域进行模糊处理&#xff0c;再与原始图像混合而成。 一般对亮部进行模糊处理的部分采用高斯模糊&#xff0c;关于高斯模糊&#xff0c;详见之前的另一篇博客&#xff1a; https://www.cnblo…

python3 一些常用的数学函数

# -*- coding:utf-8 -*- # Author: Evan Mi import math# 返回数字的绝对值&#xff0c;如abs(-10)返回10 print(abs(-10)) # 返回数字向上取整的结果 print(math.ceil(1.3)) # 比较两个数 import operator print(operator.eq(1, 1)) print(operator.ne(1, 1)) print(operator.…

Gauss elimination Template

Gauss elimination : #include <iostream> #include <cstdlib> #include <cstring> #include <stdio.h> using namespace std;const int MAXN 50;int a[MAXN][MAXN];//增广矩阵 int x[MAXN];//解集 bool free_x[MAXN];//标记是否是不确定的变元 int f…

不要假装努力,结果不会陪你演戏!

转载于:https://www.cnblogs.com/strive-19970713/p/11171205.html

机器学习基石作业一中的PLA和POCKET_PLA实现

前提&#xff1a;文中使用的数据是本人下载下来以后自己处理过的&#xff0c;就是把文件中的所有分隔符都换成了空格。所以load_data方法只能加载我自己的数据&#xff0c;想要加载原生数据的话需要自己写load_data方法。 两个算法的关键地方都需要判断当前的w在某个样本点x上是…

机器学习基石-作业二-第10题分析

题目如上图所示&#xff0c;答案是&#xff1a;&#xff1b;在网上看到的答案中有一个很好的解释就是说在一个n纬的欧几里德空间里&#xff0c;分别按照参数做一个垂直于每个轴的超平面&#xff0c;这些超平面能够打散这么多个点。首先我承认这个事实&#xff0c;具体的证明还没…

用CSS控制Table和div因撑开而变形

用CSS控制Table和div因撑开而变形 http://inrainight.blogbus.com/logs/50853786.html <style>table { table-layout: fixed; word-wrap:break-word; }div { word-wrap:break-word; }</style> 语法&#xff1a; word-wrap : normal | break-word 参数&#xff1…

机器学习基石作业二中的DECISION_STUMP实现

概要&#xff1a;在林老的题目描述中&#xff0c;DECISION_STUMP&#xff08;其实就是“决策桩”&#xff0c;也就是只有一层的决策树&#xff09;。题目中提到了的选去是把属性&#xff08;一维的&#xff09;按照从小到大的顺序排列以后取两个挨着的值的平均值&#xff0c;网…

【MM系列】SAP 关于更改物料的价格控制类型

公众号&#xff1a;SAP Technical本文作者&#xff1a;matinal原文出处&#xff1a;http://www.cnblogs.com/SAPmatinal/ 原文链接&#xff1a;【MM系列】SAP 关于更改物料的价格控制类型前言部分 大家可以关注我的公众号&#xff0c;公众号里的排版更好&#xff0c;阅读更舒适…

机器学习基石-作业三-第2题分析以及通过H证明EIN的讨论

题目&#xff1a; 这是机器学习基石作业三种的第二小题&#xff0c;额&#xff0c;在网上看了很多解答&#xff08;解答也不多&#xff09;感觉都没有说清楚为什么&#xff0c;所以励志清楚滴解决一下这个问题&#xff0c;经过努力&#xff0c;自认为得到了详细的解答&#xff…

Nginx的平滑升级记录---适用于编译安装的Nginx

一、查看自己的Nginx的版本号 [rootlocalhost sbin]# cd /usr/local/nginx/sbin/ [rootlocalhost sbin]# ls nginx [rootlocalhost sbin]# ./nginx -V nginx version: nginx/1.15.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) configure arguments: 二、确定自己要…

机器学习基石-作业三-代码部分

梯度下降迭代和牛顿迭代&#xff0c;gradient_and_newton.py # -*- coding:utf-8 -*- # Author: Evan Mi import numpy as np""" 作业三中使用梯度下降和牛顿法进行迭代 """def update(u, v, eta):u_tem u - eta * (np.exp(u) v * np.exp(u*v…

设备树中#address-cells和#size-cells作用

device tree source Example1 / {#address-cells <0x1>; // 在 root node 下使用 1 個 u32 來代表 address。#size-cells <0x0>; // 在 root node 下使用 0 個 u32 來代表 size。......memory { // memory device... reg <0x90000000>; /…