C#
文章平均质量分 84
_Wyhon
I'm gonna make a change for once in my life!
It's gonna feel real good!
展开
-
值类型变量和引用类型变量的区别
主要区别在于 系统在内存空间中为两者分配存储空间的方式不同。1、内存空间内存空间分为栈空间和堆空间。值类型数据的存储空间在栈空间中分配,引用类型数据则在堆空间分配。由系统管理栈空间的所有操作,包括进栈和出栈。当一个数据出栈后,其所分配到的存储空间由系统自动回收。堆空间由CLR负责管理。2、值类型变量C#中的值类型变量和C/C++中的普通变量(非指针变量)相似。当定义原创 2017-12-02 11:25:09 · 2234 阅读 · 0 评论 -
C#枚举器基本用法
首先看一段代码 int[] arr = new int[] { 1, 2, 3, 4, 5 }; foreach(int ele in arr) { Console.Write(ele + " "); }输出是“1,2,3,4,5”。问题来了,为什么foreach语句能够依...原创 2018-03-25 11:28:02 · 1245 阅读 · 0 评论 -
C# 匿名类型
1、匿名类型的使用场景 当类中只定义了一些字段和属性,没有构造函数、方法、委托事件等比较复杂的成员,而且这个类的使用频率不高时,我们就可以使用匿名类型。2、匿名类型的定义 定义一个匿名类型时,需要使用var关键字和对象初始化语法。 var:编译器会在编译时自动生成新类的定义。 初始化:编译器会为类创建私有的字段和(只读)属性。 var student = new { ...原创 2018-04-01 14:59:16 · 6610 阅读 · 0 评论 -
预编译指令和对象初始化器
1、预编译指令的概念 预编译指令也称预处理指令,在程序编译前执行.区域指令是预编译指令中的一种。 #region ...... #endregion2、对象初始化器 当类中存在很多字段时,其构造函数的重载形式有很多,将他们一一实现的话工作量很大。这是使用对象初始化器,可以直接对类中的字段进行赋值而无需实现对应的构造方法。例如: ...原创 2018-04-01 15:32:58 · 187 阅读 · 0 评论 -
隐藏和覆盖的区别
1、直接上代码class Person { public void A() { Console.WriteLine("Person.A"); } public virtual void B() { Console.WriteLine("Perosn.B"); ...原创 2018-04-05 23:56:36 · 622 阅读 · 0 评论 -
深浅复制
浅复制:字段是值类型,则对其执行逐位复制,通俗讲就是赋值;字段为引用类型,则直接复制其引用,也就是说原始对象和克隆对象引用的是同一个对象。深复制:值类型字段的复制方式与浅复制相同;对于引用类型的字段,重新实例化一个内容相同但引用不同的字段,也就是说原始对象和克隆对象引用的不是同一个对象。文字可能过于抽象,例子:namespace Project_1{ class IdInf...原创 2018-08-16 17:35:07 · 135 阅读 · 0 评论