开发工具与关键技术:VS MVC
作者:小益
撰写时间:2022/3/17
这是我自己总结的一些C#的基础知识内容,总共总结了以下六点,控制器的输入与输出、类的实例化、值类型的装箱和拆箱、String和string之间的区别、值类型的几个特点、还有值类型和引用类型之间的区别。
一、输入与输出:
Console.Write(); 输出后不换行
Console.WriteLine(); 输出后自动换行
Console.ReadLine(); 读取键盘时输入的所有字符,返回字符串。按下回车键退出
Console.Read(); 读取键盘输入的第一个字符,返回其对应的ASCLL值。按下回车键退出
Console.ReadKey(); 等待用户按下任意键退出,(此函数的作用是为了在控制台窗口停留一下,直到用户敲击键盘为止。不然运行时,”Hello World!”这句话会在控制台窗口一闪而过,没法查看)
二、什么叫类的实例化:
MyPlan plan1=new MyPlan(); 类的实例化
直白地解释就是:通过已有的类(class)创建出该类的一个对象(object),这一过程就叫做类的实例化。
打个比方:你设计了一个飞机模型,交给工人师傅去加工制作,生产出一个(一批)飞机。飞机模型就相当于程序中的类,生产出来的飞机就是对象,生产飞机这一过程就叫做类的实例化
三、装箱和拆箱
装箱:值类型转换为对象类型,
实例:
int val=8;
Object obj=val; 整型数据转换为对象类型(装箱)
拆箱:之前由值类型转换而来的对象类型再转回值类型,
实例:
int val=8;
object obj=val; 先装箱
int nval=(int) obj; 再拆箱
只有装过箱的数据才能拆箱
四、String 跟 string 的区别
string 是 C# 中的类,String 是 .net Framework 的类(在 C# IDE 中不会显示蓝色) C# string 映射为 .net Framework 的String 如果用 string, 编译器会把它编译成 String,所以如果直接用 String 就可以让编译器少做一点点工作。
如果使用 C#,建议使用 string,比较符合规范 string 始终代表 System.String(1.x) 或:System.String(2.0) ,String 只有在前面有 using System;的时候并且当前命名空间中没有名为 String 的类型(class、struct、delegate、enum)的时候才代表 System.String string 是关键字,String 不是,也就是说 string 不能作为类、结构、枚举、字段、变量、方法、属性的名称,而 String 可以。
String 是 CLR 的类型名称(也算是关键字),而 string 是 C# 中的关键字。string 在编译时候 C# 编译器会默认将其转换为 String,在这里会多增加几行转换的代码。很多时候都是建议使用 CLR 的类型而不要使用 C# 的类型(这是专家的建议)。比如说还有:使用 int 的时候最好使用 Int32 等。很多时候都是一个习惯问题,规范问题。还有一个不同就是在 VS 中表现的颜色不一样:String 是绿色,string 是蓝色。
五、值类型的特点:
1.不能从值类型派生新类型,但可以结构实现接口;
2.值类型不能包含 null 值;
3.每个值类型都具有一个初始化该类型的默认值的隐式默认构造函数。
六、值类型与引用类型的区别:
从内存上看,值类型是在栈中的操作,而引用类型是在堆中的操作。
(导致 => 值类型存取速度快,引用类型存取速度慢。)
从本质上看,值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用。
(值类型是具体的那个数值所占用的空间大小,而引用类型是存放那个数值的空间地址。)
从来源上看,值类型继承自System.ValueType,引用类型继承自System.Object。
特别的:结构体是值类型,类和string是引用类型。
当一个值类型转换为对象类型时,则被称为装箱;另一方面,当一个对象类型转换为值类型时,则被称为拆箱。
动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。
以上就是我所学到的知识,希望对大家有帮助,新手上道,请多多指教。