C#学习day04

1.三元运算符:条件?表达式1:表达式2

条件满足则返回表达式1,不满足则返回表达式2

嵌套三元运算符:如输入两个数字,获取第一个数字和第二个数字的大小关系。(大于,等于,小于)

int num1 = Convert.ToInt32(Console.ReadLine());

int num2 = Convert.ToInt32(Console.ReadLine());

num1 > num2 ? "大于" : num1 < num2 ? "小于" : "等于"

优点:执行效率高,代码简洁,能直观的表达结果,便于维护

2.常量

语法格式: const 数据类型 常量名 = 常量值

常量定义后就不可以被修改

常量名通常全部大写

3.枚举

枚举为自定义的值类型, 有点类似于结构体,但是区别挺大,枚举类型中存放的都是整形常量,也就是不允许被修改

语法格式 enum 枚举名{

常量名;

}

常量值可以使用默认,也可以手动指定

通常放于命名空间中, 类的上面,表示命名空间下所有类都可以访问这个枚举类型

4.结构体

结构体是一种封装数据可提供相关功能的值类型,它使一个单一变量可以存储各种数据类型的相关变量

语法格式:struct 结构体名{

public 数据类型 字段名;

}

结构体同样放在命名空间中,类上;

5.内存结构

栈区: 存放值类型的实际值,存放引用类型值的地址,由编译器自动编译释放

堆区:存储引用类型的数据,在C#中由.NET提供的GC(垃圾回收机制)管理

数据类型回顾:

值类型:预定义类型:sbyte, byte, short, ushort, int, uint, long, ulong,float,double,decimal

用户自定义类型: enum, struct

引用类型:string

值类型的赋值和比较:

比如说,定义两个变量A,B,将B的值赋给A; 修改B的值,A不会改变

它们是两个不同的变量

比较:值类型之间比较的是实际值

string类型之间的赋值和比较

在赋值给string类型的时候,编译器会判断字符串值是否在驻留池中出现过,如果有就直接返回前地址,没有再申请一个新的空间用来存储该值

比较: string类型比较的是地址值

如string A = "ABCDEFG";

string B = A;

Console.WriteLine(A == B);

A = "ABCD";

Console.WriteLine(A); //ABCD

Console.WriteLine(B); //ABCDEFG

Console.WriteLine(A == B); //False

6.数组

数组是一种可以存放固定个数的相同类型数据的有序集合,数组是引用数据类型

1.数组一旦被创建,它的大小就是不可以改变的。

  1. 创建了数组,立刻在内存中分配连续的空间,每个元素占用的空间大小是相同的。

  2. 同一个数组其元素的类型必须是相同类型,不允许出现混合类型。

  3. 数组类型中存储的数据可以是任何数据类型,包括基本类型和引用类型。

  4. 数组属于引用数据类型。

因为数组是一块连续的空间,虽然元素的地址是连续的,但是因为有多个元素,那就有多个地址,但是栈空间中只能存放一个地址引用。

数组对象中存放的是数组空间中第一个元素的地址

定义方法

先定义后赋值:int arr\[\] = new int5;

定义同时赋值: int arr\[\] = new int5{1,2,3,4,5};

for循环变量 for(int i; i < 数组.length; i++) 数组名i = 数组中第i个元素的值

foreach遍历

定义方法: for(数据类型 i in 数组名)

{

变量名 = 数组中的元素

}

7.完成简易超市操作系统,实现以下功能

相关推荐
yi0113 小时前
LeetCode 15:三数之和|排序 + 双指针,如何避免重复答案?
笔记·python·算法·leetcode·双指针
kim3 小时前
一个人 + AI,用 WinForms 搓了个 376KB 的 Windows 便签:便签 / 截图 / 标注 / OCR / 待办全塞进去了
c#
北风toto3 小时前
数据库笔记:Armstrong 公理系统与集合论的深度辨析
数据库·笔记
EasyBr指纹浏览器3 小时前
我的开源项目:小红书笔记归档,把来源和缺项一起留下
笔记·小红书·开源工具·素材管理·内容归档
海海不掉头发3 小时前
图论及其应用_课堂笔记整理_CSDN博客
笔记·图论
志尊宝4 小时前
Vue3 零基础每日笔记(075):图片懒加载与骨架屏
javascript·vue.js·笔记
hez20104 小时前
一行代码在 .NET 项目里启用 Satori GC
c#·.net·.net core·gc·clr
m0_719640874 小时前
机器人开源遥操作设备技术特性与高校科研场景适配研究
经验分享·机器人·开源
lvqinglou4 小时前
学习Sql-part1 for婷姐
sql·学习·性能优化
宇卿.4 小时前
C#语句:
开发语言·c#