当前位置: 首页 > news >正文

网站开发需要的资源徐州关键词优化排名

网站开发需要的资源,徐州关键词优化排名,莱芜新闻电视台节目表,公司网站制作苏州文章目录 枚举为什么要有枚举?枚举的性质设置默认类型和显式设置成员的值 位标志(重要)位标记是什么及作用位标志周边知识HasFlag判断是否有该功能枚举前面加Flags的好处 关于枚举的更多知识using static简化代码获取枚举成员的字面量 枚举 为什么要有枚举? 为了增加代码的…

文章目录

  • 枚举
    • 为什么要有枚举?
    • 枚举的性质
    • 设置默认类型和显式设置成员的值
  • 位标志(重要)
    • 位标记是什么及作用
    • 位标志周边知识
      • HasFlag判断是否有该功能
      • 枚举前面加Flags的好处
  • 关于枚举的更多知识
    • using static简化代码
    • 获取枚举成员的字面量


枚举

为什么要有枚举?

为了增加代码的可读性以及可维护性,增加了枚举这一种值类型(直接在栈上存储数据).
如在红黑树中给节点赋初始值,直接赋值0/1可读性太差.
枚举一个Color类型,RED在代表红色节点的同时又表示0,大大增加代码的可读性.

enum Color {RED,BLACK
}class Node {//...public Node(int key) {Key = key;NodeColor = Color.RED; // 默认新插入的节点是红色}
}

枚举的性质

enum TrafficLight {RED,  //值为0YELLOW,GREEN
}

1.每个成员之间以逗号分隔,
2.每个成员默认表示的值从0开始.后面的值比前面的值大1
3.每个成员的默认类型是int
4.成员的名字不能重复

namespace shh
{enum TrafficLight{GREEN,RED,YELLOW,}class Program{static void Main(string[] args){TrafficLight t1 = TrafficLight.RED;//创建变量t1,并用枚举成员RED初始化Console.WriteLine(t1);}}
}

在这里插入图片描述
默认情况下打印t1显示的是t1的字面值RED,而不是他的实际值1.
如果要得到他的实际值,用int强转就行.

设置默认类型和显式设置成员的值

修改默认类型,在枚举类型后面加冒号,然后设置新的默认类型.

    enum TrafficLight:uint{GREEN,RED,YELLOW,}

显式设置值

namespace shh
{enum TrafficLight:uint{GREEN=100,RED,YELLOW,}class Program{static void Main(string[] args){TrafficLight t1 = TrafficLight.RED;Console.WriteLine((int)t1);}}
}

先设置GREEN的值为100,因为后面的值是前面的值+1,所以RED=101.
在这里插入图片描述

位标志(重要)

位标记是什么及作用

位标记:用数据的二进制位来表示功能的开/关
我用下面的文件操作来举例
Write表示对文件进行写操作,二进制 0001
Read表示对文件进行读操作,二进制 0010.
每个值都是2的幂,然后就可以把他们组合起来形成唯一的值.
ReadWrite是Read和Write的组合

    [Flags]enum FileOperations{None=0x0,  //0x是十六进制的意思Write=0x1,Read=0x2,Execute=0x8,ReadWrite = Read|Write}

位标志在文件权限管理中非常常见,可以通过单个整数来表示多种不同的权限.

 FileOperations F1 = FileOperations.None;FileOperations F2 = FileOperations.ReadWrite;

既节省性能,又增强代码的可读性

位标志周边知识

HasFlag判断是否有该功能

    class Program{static void Main(string[] args){FileOperations F1 = FileOperations.ReadWrite;bool Test = F1.HasFlag(FileOperations.Execute);if(Test == false){Console.WriteLine("Test can not Execute");}}}

在这里插入图片描述
变量F1没有执行权限.

另外一种判断方法:

        static void Main(string[] args){FileOperations F1 = FileOperations.ReadWrite;bool Test = (F1 & FileOperations.Write)==FileOperations.Write;if(Test == true){Console.WriteLine("Test can Write");}}

计算过程:(二进制位)
F1:0011
FileOperations.Write:0001
按位与(&)之后:0001

枚举前面加Flags的好处

    class Program{static void Main(string[] args){FileOperations F1 = FileOperations.ReadWrite| FileOperations.Execute;Console.WriteLine(F1.ToString());}}

没去Flags:
在这里插入图片描述

去掉Flags:在这里插入图片描述
Tostring:与枚举的成员匹配,成功的话返回字符串名称
没有Flags,编译器直接拿11去找枚举成员里面是否有匹配的.没有找到,打印11.
Flags相当于一个信号,告诉编译器枚举成员之间是可以进行组合的,然后他就拿着11去对应两个分开的成员.

关于枚举的更多知识

using static简化代码

using System;
using System.Collections.Generic;
using static shh.TrafficLight;
namespace shh
{enum TrafficLight{GREEN=100,RED,YELLOW,}class Program{static void Main(string[] args){Console.WriteLine($"{(int)RED}");}}
}//输出:101

using static shh.TrafficLight;扩展TrafficLight这个静态类,使得在函数体内不需要用 类名.成员 来访问
简化:TrafficLight.RED ==> RED

从中我们也可以看出,枚举类型属于静态类型,所以我们不用创建变量也能使用.顺便说一下,我们的Main主函数也是静态的.

namespace shh
{enum TrafficLight{GREEN = 100,RED,YELLOW,}class Program{static void Main(string[] args){Console.WriteLine(TrafficLight.GREEN);}}}

获取枚举成员的字面量

GetNames方法:调用Enum类型的GetNames方法,传参(用typeof来获取枚举类型),最后foreach遍历取得枚举成员.

namespace shh
{enum TrafficLight{GREEN=100,RED,YELLOW,}class Program{static void Main(string[] args){foreach (var name in Enum.GetNames(typeof(TrafficLight))) Console.WriteLine(name);}}
}//输出
//GREEN
//RED
//YELLOW

http://www.hkea.cn/news/110644/

相关文章:

  • 网站图片引导页怎么做重庆seo招聘
  • 如何做属于自己的领券网站郑州百度网站优化排名
  • 建设银行益阳市分行桃江支行网站公司页面设计
  • vps 网站上传网站seo优化是什么意思
  • wordpress cos腾讯云seo网站优化收藏
  • 鹤岗商城网站建设免费域名申请
  • 江苏三个地方疫情严重抖音视频排名优化
  • 竞价排名广告东莞关键词排名快速优化
  • 做视频网站要什么格式好网络营销公司怎么注册
  • 企业专业网站建设快速网站搭建
  • 武威建设网站的网站google谷歌搜索
  • 长沙公司做网站多少钱推广平台怎么做
  • 现在大家做电商网站用什么源码营销策略都有哪些
  • 可以做试卷的网站英语怎么说seo关键词排名优化系统源码
  • 网站怎么设置支付功能企业网站的主要类型有
  • 成都圣都装饰装修公司北京搜索优化排名公司
  • 境外建设网站贴吧互联网域名注册查询
  • 广州建站工作室淘客推广怎么做
  • 中国最大的网站建设公司百度广告联盟点击一次多少钱
  • wordpress单页主题营销seo手机关键词网址
  • dedecms做电影网站韩国最新新闻
  • 哪个网站做废旧好如何在百度上发布自己的广告
  • 网站表单及商品列表详情模板如何搭建自己的网站
  • 网站域名登记证明百度高级搜索怎么用
  • 国外网站在国内做镜像站点网站搭建费用
  • 网站后台如何添加关键词软件开发公司
  • 手机做网站的网站windows优化大师卸载不了
  • 万网速成网站有哪些 功能自己的网站怎么推广
  • 邯郸哪有做网站的河南百度推广公司
  • 我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢西安网站seo优化公司