摘要: work hard work smart 原文 C# Dictionary用法总结 1、常规用法 增加键值对之前需要判断是否存在该键,如果已经存在该键而且不判断,将抛出异常。所以这样每次都要进行判断,很麻烦,在备注里使用了一个扩展方法 2、Dictionary的Value为一个数组 3、Dictio 阅读全文
posted @ 2016-10-11 20:14 wenglabs 阅读(29076) 评论(2) 推荐(0)
摘要: 原文 C# 中的 null C# 允许将 null 值赋给任意引用变量(不能把 null 赋给一个值变量)。值为 null 的变量表明该变量不引用内存中的任何对象。 如下所示: 将 c 赋给 copy,则 copy 和 c 引用同一个对象,而 copy 原来引用的对象则由 runtime 执行一个称 阅读全文
posted @ 2016-10-11 19:58 wenglabs 阅读(2254) 评论(0) 推荐(0)
摘要: 原文C# 中 string.Empty、""、null的区别 一、string.Empty 和 "" 1、Empty是string类中的一个静态的只读字段,它是这样定义的: 也就是说 string.Empty 的内部实现是等于 "" 的。二者在优化方面稍有差别,string.Empty 是 C# 对 阅读全文
posted @ 2016-10-11 10:24 wenglabs 阅读(12078) 评论(1) 推荐(1)
摘要: 原文 C# 中的值类型和引用类型 值类型(value type):int,long,float,double,decimal,char,bool 和 struct 统称为值类型。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。 引用类型(reference type):string 和 cl 阅读全文
posted @ 2016-10-11 10:02 wenglabs 阅读(428) 评论(0) 推荐(0)
摘要: 原文 C#中数据类型的安全转换(is,as) 下面代码中,不能装箱,在强制类型转换时出错,因为之前 c 是 class 类型,而却要把它转换为 int 类型,这是不可以的。虽然编译器能通过编译,但是 runtime 在运行时会抛出 InvalidCastException 异常。 is 和 as 是 阅读全文
posted @ 2016-10-11 09:56 wenglabs 阅读(819) 评论(0) 推荐(1)
摘要: 原文 C# 中的枚举类型 enum (属于值类型) C# 支持两种特殊的值类型:枚举和结构。 声明枚举:声明时要声明所有可能的值。 运行后结果如下: 在枚举的内部,它的每个元素都关联(对应)着一个整数值。默认情况下,第一个对应整数 0,以后每个元素所对应的整数都递增 1。我们可以获取一个枚举变量的基 阅读全文
posted @ 2016-10-11 09:50 wenglabs 阅读(9118) 评论(0) 推荐(0)
摘要: 原文 C# 中的数组(array) 特性 数组是一个无序的元素序列。数组元素存储在一个连续性的内存块中,并可使用一个整数索引来访问。 C# 声明数组变量时,数组的大小不是声明的一部分。这点与C/C++有些区别。 只有在实际创建数组实例的时候,才需要指定数组的大小。创建数组实例时编译器默认将数组元素初 阅读全文
posted @ 2016-10-11 09:36 wenglabs 阅读(13106) 评论(0) 推荐(0)
摘要: 原文C# 中的 ref 和 out 的意义和使用方法 向方法传递一个实参时,对应的形参会用实参的一个副本来初始化,不管形参是值类型(例如 int),可空类型(int?),还是引用类型,这一点都是成立的。也就是随便在方法内部进行什么修改,都不会影响实参的值。例如,对于引用类型,方法的改变,只是会改变引 阅读全文
posted @ 2016-10-11 09:22 wenglabs 阅读(737) 评论(0) 推荐(0)
摘要: 转角撞倒猪 原文 C# 中的装箱与拆箱 装箱:将一个数据项(副本)从栈中自动复制到堆中的行为。 引用关系如下所示: PS:o 和 i 的改变将互不影响,因为装箱使用的是 i 的一个副本。 拆箱:将一个数据项(副本)从堆中自动复制到栈中的行为。 引用关系如下所示: PS:o 和 i 的改变将互不影响( 阅读全文
posted @ 2016-10-11 08:49 wenglabs 阅读(326) 评论(0) 推荐(0)
摘要: 原文C# 中的堆和栈 栈上存储的有:值类型,引用类型本身。 栈内存就像一系列堆得越来越高的箱子。调用方法是,它的每一个参数都被放入一个箱子,并将这个箱子放到栈的最顶部。每个局部变量也同样分配到一个箱子,并同样放到栈的最顶部。方法结束后,它的所有箱子都从栈中移除。 堆上存储的有:引用类型的“对象”,可 阅读全文
posted @ 2016-10-11 08:46 wenglabs 阅读(421) 评论(0) 推荐(0)
摘要: 原文 C# 中的结构类型(struct) 简介 有时候,类中只包含极少的数据,因为管理堆而造成的开销显得极不合算。这种情况下,更好的做法是使用结构(struct)类型。由于 struct 是值类型,是在栈(stack)上存储的,所以能有效的减少内存管理的开销(当然前提是这个结构足够小)。 结构可以包 阅读全文
posted @ 2016-10-11 08:38 wenglabs 阅读(19782) 评论(2) 推荐(2)
摘要: 转角撞倒猪 原文 使用枚举和结构输出日期 运行后结果如下所示: 阅读全文
posted @ 2016-10-11 08:28 wenglabs 阅读(756) 评论(0) 推荐(0)
摘要: 转角撞倒猪原文C# 中类和结构的区别 阅读全文
posted @ 2016-10-11 08:26 wenglabs 阅读(252) 评论(0) 推荐(0)