枚举

枚举的话,主要有两个比较吸引我的地方:一、规范常量的声明、使用和存储;二、不用记忆,方便枚举值的使用。

    从规范性上来说,主要是避免同一类别的不同命名问题。诸如,在我们需要存储用户性别时,如果让用户自由输入信息,那么对于男性来说,用户可能输入“老爷们”、“男生”、“男同胞”和“非女生”等等一系列可以表示用户性别为男性的名词。这就为我们日后使用性别这个字段进行数据操作时带来很大的麻烦,例如我们想要统计一个系统中男性的工资情况,我们就不得不查找前面提到的每一个用户自由输入的表示男性的名词。
    所以,我们必须在用户输入信息时进行必要的强制性规范。在VB中我们可以通过ListBox的属性实现这个功能;而在C#中,我们可以通过枚举实现规范用户输入信息的功能。

语法

【访问修饰符】+关键字+枚举名称

{

值1,

值2,

}

代码示例

<span style="font-family:KaiTi_GB2312;font-size:24px;">public enum Gender   //Public  是访问修饰符{ 男,女    //最后可加可不加,}</span>

应用实例:

<span style="font-family:KaiTi_GB2312;font-size:24px;"> class Program{static void Main(string[] args){Person Joker;Joker._name = "你猜";Joker._gender =Gender.男 ;  //调用枚举值Joker._age = 23;Console.WriteLine(Joker );Console.ReadKey();}}</span>

正如我们上面代码中“Joker._gender=Gender.男”写到的这样,用户再输入性别时只能选择枚举值“Gender.男”或“Gender.女”而不是自由输入各种表示男性或者女性的同义词了。

结构体

有没有这样的纠结:在向系统中输入用户的原始信息时,姓名、性别、年龄和工资等一系列的字段都需要一个个重复性的声明和赋值。一个两个用户的信息这样录入系统还好,那要是成千上万个用户的信息呢?估计程序员会在接到这种任务时就得挂了。这时,为一次性声明多个不同变量提供解决方案的结构体应用而生。

语法

[访问修饰符]+关键字+结构体名称

{

结构体的具体代码

}

代码示例

<span style="font-family:KaiTi_GB2312;font-size:24px;"> public struct Person    //结构体,存储个人信息{public string  _name;public Gender _gender;public int _age;}</span>

使用示例

<span style="font-family:KaiTi_GB2312;font-size:24px;">class Program{static void Main(string[] args){Person Joker;            //实例化一个名为joker的结构体,用以存储其相关信息Joker._name = "刘超";   //结构体joker的名字Joker._gender =Gender.男 ;  //结构体joker的性别Joker._age = 23;           //结构体joker的年龄Console.WriteLine(Joker );Console.ReadKey();}}</span>

声明这样一个负责存储用户个人相关信息的结构体后,我们就不必像下面这样去存储用户的个人信息了。大家可以回想下自己之前不用结构体存储大量类似用户信息的经历,是不是有种往事不堪回首的憨笑。

数组

个人认为数组和结构体是一对不错的基友。结构体为一次性多个不同变量的声明提供了解决方案;数组则为程序员一次性声明同一类型的N个变量带来了福音。

语法

方法一:

数据类型+[]+nums=new 数据类型(和前面的保持一致) []{数组的值};

方法二:

数据类型+[] num=new+数据类型+[数组长度](注:数组长度-1=索引(下标))

方法三:

数据类型+[] nums=new+数据类型+[具体的长度值]+{与长度值对应的数组元素,不能多不能少}

方法四:

数据类型+[] nums={直接写元素即可}

PS:数组的声明方式比较灵活,大家可以是具体情况而定;鉴于数组声明的方式比较多,我就不一一举例了,大家可以参照下面的使用举例自己尝试数组的声明代码。

使用示例

<span style="font-family:KaiTi_GB2312;font-size:24px;">namespace 最大值和最小值
{class Program{static void Main(string[] args){//计算数组中的最大值和最小值int [] nums=new int []{2,323,343,456,45,786,-22,-1,323,-966,865};int max = int.MinValue ;   //声明max以存储最大值int min= int.MaxValue ;   //声明min以存储最小值for (int i = 0; i < nums.Length; i++){ if (nums[i]<min){min = nums[i];}if (nums[i]>max ){max = nums[i];}//上面连个if语句并没有改变数组nums中的元素}Console.WriteLine("最大值{0}最小值{1}",max,min );Console.ReadKey(true );}}
}
</span>

通过上面的代码,大家不难看出数组和循环的结合可以为我们提供不同问题的多种解决方案,从而提高我们的效率。上面仅仅是一个计算一组数值类型数据的max和min的解决方案。实际上通过数组和循环结构的组合,我们可以实现核实信息、防火墙、文件检索等一系列我们想到的想不到的功能。而数组元素的值可以是各种类型,下面给出大家一个字符串数组的小demo:

<span style="font-family:KaiTi_GB2312;font-size:24px;">namespace 方法调用之分割数组
{class Program{static void Main(string[] args){string[] names = new string[] { "张三","李四","王五","赵六","路人甲","路人乙","路人丁"};Program.AddName(names);//Console.WriteLine(strName + names[names.Length - 1]);   //names.Length - 1是数组元素的下标//names[names.Length - 1]  数组中的元素Console.ReadKey();}public static void AddName(string []names){string strName = "";for (int i = 0; i < names.Length; i++){strName += names[i] + "|";}Console.WriteLine(strName);}}
}
</span>

这个小demo的功能就是分割字符串数组的元素。

总结

枚举、结构体和数组是我们程序员编写代码的小工具,这三者很好的体现了面向对象思想中的代码复用思想。

Thanks For Your Time Enjoy~

——joker

C#基础之结构体枚举数组相关推荐

  1. c# 编程入门第六课常量,枚举,枚举转换成其他类型变量(枚举和int,转 string字符串转枚举),结构体,数组,冒泡排序,实际使用排序,方法(函数)

    c# 编程入门第六课 文章目录 c# 编程入门第六课 1. 常量 2. 枚举 3. 枚举转换成其他类型变量 3.1 枚举和int 3.2 转string 3.2 字符串转枚举 4.结构体 5.数组 7 ...

  2. Golang——结构体创建与初始化、结构体与数组、结构体与切片、结构体与map、结构体作为函数参数、结构体方法、结构体方法继承

    结构体: 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合 结构体可以很好的管理一批有联系的数据,使用结构体可以提高程序的易读性,类似于Java的类一样 不能在结构体直接赋值 字段名必须唯一 ...

  3. Go 存储基础 — 内存结构体怎么写入文件?

    作者 | 奇伢       责编 | 欧阳姝黎 概述 讲了那么多存储的通用知识,从 Linux 的文件系统,块层,再到磁盘,都做了一些深入的分享.今天分享一个 Go 编程的使用技巧:怎么把内存的结构体 ...

  4. 【C语言】自定义类型 结构体 枚举 联合

    结构体的基础知识 结构体是一些值的集合,这些值称为成员变量.结构体的每个成员可以是不同类型的变量. 结构体的声明 定义一个学生的结构体 struct Stu {char name[20];//名字in ...

  5. 结构体+枚举+联合体

    结构体+枚举+联合体 结构体 结构体的声明 结构体的嵌套+链表 结构体变量的初始化 结构体的内存对齐 一.首先得掌握结构体的对齐规则 二.一些具体的例子 为什么存在内存对齐? 位段 位段的内存保存 枚 ...

  6. 江哥带你玩转C语言 | 14 - 结构体-枚举-共用体

    什么是结构体 结构体和数组一样属于构造类型 数组是用于保存一组相同类型数据的, 而结构体是用于保存一组不同类型数组的 例如,在学生登记表中,姓名应为字符型;学号可为整型或字符型;年龄应为整型;性别应为 ...

  7. C语言结构体指针数组小结

    第一次写博客,有点小激动.话不多说,进入正题. c语言最常见的几种东西:结构体,数组,指针和函数.单个定义很好理解,组合在一起就会让人头大.先说函数.数组和指针的组合. 1.函数.数组和指针的组合 包 ...

  8. 链表、结构体和数组对比

    结构体和数组 1.结构体可以存不同类型的元素,而数组只能存同一类型 2.结构体类型需要我们自已定义.数组是用别的类型加[元素个数] 3.结构体内存分配方式很特别,使用对齐原则,不一定是所有元素的字节数 ...

  9. c语言 输入职工工资资料,通过结构体的数组来进行操作 报告,c语言课程设计报告-职工工资管理系统...

    <c语言课程设计报告-职工工资管理系统>由会员分享,可在线阅读,更多相关<c语言课程设计报告-职工工资管理系统(33页珍藏版)>请在人人文库网上搜索. 1.c 语言课程设计报告 ...

最新文章

  1. Leetcode: Permutations II
  2. exit函数的头文件问题
  3. nginx优化及配置
  4. matlab编程数字信号,MATLAB--数字信号实验.doc
  5. java 日志乱码_【开发者成长】JAVA 线上故障排查完整套路!
  6. 交通灯程序设计C语言,基于MCS-51的交通灯程序设计(c语言控制直行左转,包含程序)...
  7. magento导入导出Custom Options, Tier Prices and Grouped Products
  8. Inconsistency detected Invalid view holder adapter position
  9. NHibernet能带来什么呢?
  10. 基于numpy科学计算库实现线性回归linear regression
  11. matlab可以算二重积分么,matlab 二重积分函数
  12. R语言 dbWriteTable 写入数据库为空和乱码问题
  13. kartoslam找bug之行
  14. 微信小程序实现手写签名(极简横版)
  15. 新手应该如何学习SEO优化
  16. FPGA——时钟分频
  17. python制作查询网页_Python制作简单的网页爬虫
  18. 入职腾讯第九年,我辞职了!
  19. VisualVM的配置和使用
  20. AI面相测试源码 AI面相手相大师小程序源码 最新版微信小程序源码

热门文章

  1. 修作玉颜色,卖于帝王家(java笔试面试—-求职经历)
  2. visual studio code注释快捷键怎么用?
  3. 亚马逊适合个人创业吗?一个人单干暴利项目有哪些?分享一下!
  4. Tomcat调优(详细)
  5. oracle 年月相减求月数,oracle 时间相减,月度相加减
  6. 苗木产业已成为促进冠县农民发家致富的绿色银行
  7. python动态交互式图表库_五个创建交互式图表的Python库
  8. iphone手机里的计算机没有了怎么办,iPhone连到系统上的设备没有发挥作用怎么办...
  9. 中小学计算机能力者提升培训合格,关于参加全省中小学教师信息技术应用能力提升工程2.0培训管理者高级研修班的通知...
  10. 小孩子惊吓到 解决方法 收集