首页 > 其他分享 >第十三单元 补充知识

第十三单元 补充知识

时间:2023-05-30 15:35:17浏览次数:51  
标签:Console 第十三 int 知识 Sex 枚举 OrderState WriteLine 单元

1. 泛型

泛指某种类型。

1、使用参数形式定义 2、使用时传入具体类型 3、编译时检查类型安全 4、逻辑上是多个不同类型

泛型与非泛型之间的区别

  • 性能高:可以避免装箱和拆箱操作

  • 类型安全 :在进行类型转换的时候不会抛出异常

  • 代码重用:定义一次,用许多种不同类型实例化

  • 代码扩展性好

ArrayList arr = new ArrayList();
arr.Add(1);
arr.Add("a");
arr.Add(2);
​
foreach (int a in arr)
{
    System.Console.WriteLine(a); // 编译阶段不会报错,但运行时报错
}

使用List 泛型集合解决问题:

List<int> list = new List<int>();
list.Add(1);
list.Add(2);
​
 // list.Add("a"); // 编译阶段就能发现问题,因为此时已经指定为Int类型,不能再乱加数据了
foreach (int a in arr)
{
    System.Console.WriteLine(a);
}

 

2. 枚举

枚举指的是一组固定的常量集合。例如生活中的性别,星期,季节等等,这些都是固定常量值组成。声明一个枚举的关键是enum, System.Enum类型是所有枚举类型的抽象基类 .

enum Sex
{
    Man,
    Women
}

 

枚举的作用:

提高程序的可读性。

反例

int sex =1;
if(sex==0){
    Console.WriteLine("男");
}else if(sex==1){
    Console.WriteLine("女");
}else{
    Console.WriteLine("未知");
}

 

时间久了,或许连自己都不知道 0,1,2到底是什么意思了。

正例:

enum Sex
{
    Man,
    Women
}
static void Main(){
    Sex sex = Sex.Man;
    switch(sex)
    {
        case Sex.Man:
            Console.WriteLine("男");
            break;
        case Sex.Women:
            Console.WriteLine("女");
            break;
        default:
            Console.WriteLine("未知");
            break;
    }
}

 

枚举类型转换

其实每一个枚举值,都会对应一个整形值,默认从0开始,如上述的,Man =0, Women=1. 也可以为枚举指定整形值,如:

enum Sex
{
    Man=10, // 默认是0
    Women   // 如果上述指定了10,则Woman=11,如果没有指定值为10,则为1
}

 

枚举值默认为依次递增,直到再次遇到指定的值的枚举值,如:

enum OrderState
{
    WaitPay=10, // 默认是0
    Pay,   // 11
    waitSend, // 12
    WaitReceive=30, // 30
    WaitComment, // 31
    Finish, // 32
    Cancel // 33
}

 

整形与枚举相互转换

// 枚举转换为整形
OrderState orderState = OrderState.Finish;
int state = (int) orderState;
Console.WriteLine(state); //32

// 整形转换为枚举
int pay = 11;
OrderState state2 = (OrderState) pay;
Console.WriteLine(state2); // Pay

 

字符串与枚举相互转换

// 枚举转换为字符串
OrderState state = OrderState.WaitComment;
string strState = state.ToString();
Console.WriteLine(strState); // WaitComment

// 字符串转换为枚举
string waitSend = "WaitSend";
OrderState state2 = (OrderState)Enum.Parse(typeof(OrderState), waitSend);

 

3 .Net 6.0 顶级语句

在创建.Net Core 6.0 项目时,会发现,Program.cs文件中 把最基本的Main方法给去掉了,这其实是 C#9.0 语法中的顶级语句语法

应用程序中只有一个文件可使用顶级语句。 如果编译器在多个源文件中找到顶级语句,则是错误的。 如果将顶级语句与声明的程序入口点方法(通常为 Main 方法)结合使用,也会出现错误。 从某种意义上讲,可认为一个文件包含通常位于 Program 类的 Main 方法中的语句。

4. 综合练习

学生类:学号(int),姓名(string),性别(char), 年龄(int)

*****************欢迎来到任我行码农场,学生管理系统********************
  ---- 1. 展示所有学生信息
  ---- 2. 添加一个学生信息
  ---- 3. 删除一个学生信息
  ---- 4. 按学号修改学生信息
  ---- 5. 按学号查找
  ---- 6. 退出系统
请输入(1-6):

按要求实现上述功能。

 

视频教程:

誉尚学教育_誉尚学教育腾讯课堂官网 (qq.com)
或者:
C# 最强入门编程(.Net 学习系列开山巨作)_哔哩哔哩_bilibili

标签:Console,第十三,int,知识,Sex,枚举,OrderState,WriteLine,单元
From: https://www.cnblogs.com/xuyubing/p/17443361.html

相关文章

  • 消防安全知识答题活动小程序v4.1.0
    消防安全知识答题活动小程序v4.1.0v4.1.01)支持多选题.wxml<checkbox-groupclass="checkbox-group"bindchange="checkboxChange"><labelclass="checkbox"wx:for="{{questionList[index].option}}"wx:for-index="key"w......
  • 第十一单元 面向对象三:继承与多态
    假设老师类设计如下:class老师类{属性:姓名,性别,生日,工资行为:吃饭,跑步,教学}学生类设计如下:class老师类{属性:姓名,性别,生日,班级行为:吃饭,跑步,学习}我们秉承着,让最简洁的代码,实现最最强大的功能原则,能否让上述案例中的重复代码进行优化呢?我们能......
  • 第十单元 面向对象二:静态类与静态成员
    前言我们天天都在使用Console.WriteLine("Helloworld");​Console.ReadLine("");​Arrays.Sort()为什么Console类调用方法不需要实例化而可以直接调用呢?我们可以查看Console的源码发现Console类定义如下:publicstaticclassConsole{//...}......
  • 第九单元 面向对象一:类与对象
    假设,班级里40位同学,我们用程序保存40位学生的信息:学号,姓名,性别,生日,身份证号。如果是你,你会怎么实现?小菜同学拿到这个题,奋书疾笔,马上写出如下代码:ArrayListlist=newArrayList();​stringstuNo1="10001";stringname1="张三";stringsex="男";Datetimebirthday1=D......
  • 第八单元 数组与集合
    1.数组(Array)数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。声明数组变量并不是声明number0、number1、...、number99一个个单独的变量,而是声明一个就像numbers这样的变量,然后使用numbers[0]、numbers[......
  • Vue基本知识1,安装创建以及常用指令
    Vue基本知识1,安装创建以及常用指令1.Vue的概念概念vue是一个渐进式的JavaScript开发框架;基于MVVM实现数据驱动的框架官网还可以用来做SPA(singlepagewebapplication):一个网页就是一个应用;例如网易云特点体积小速廈快数据双向绑定生态丰富学习成本低2.安......
  • 第六单元 流程控制
    C#流程语句分为:顺序结构,选择结构,循环结构。1.顺序结构顺序结构指的是程序一步步向下执行。inta=10;intb=a;a++;2.选择结构C#提供以下类型的选择语句。声明描述if声明一个if语句包含一个布尔表达式后跟一个或多个语句。if...else声明一个if语句可以跟......
  • 观南京大学软件研究所李樾老师《除了专业知识我们还应该学些什么》有感
    这是李樾老师在cisp课上给南大大一的同学做的类似于“最后一课”的演讲。我是一名双非普通学生,很庆幸能够在阿b上享受到国内顶尖学府,顶尖老师的思想熏陶,这个视频发表在up主“甜品专家”(谭添老师)的账号上,当时是对南京大学蒋炎岩老师的《操作系统》课程很感兴趣(虽然自己学的是网络......
  • 第五单元 函数(方法)
    1.函数(方法)的简介函数,在C#中更多的被称为方法。它表示一个的类所具有的行为(方法,函数)。方法的作用封装一些公共的代码,以达到功能重复利用,减少代码冗余。例如,我们经常要进行输入,输出,系统于是帮我们封装好了Console.WriteLine(),Console.ReadLine()等方法。一个方法是把一......
  • 第三单元 运算符、控制台、转义字符
    1.运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C#有丰富的内置运算符,分类如下:算术运算符关系运算符逻辑运算符复合赋值运算符位运算符其他运算符本文章将逐一讲解算术运算符、关系运算符、逻辑运算符、复合赋值运算符。运算符优先级(由......