摘要:为什么需要可空类型? 例如,数据库中的某个字段可能包含值 true 或 false,但是它也可能根本不包含值。 System.Boolean b=GetDBColumnValue();//如果方法返回一个null值,会收到编译错误。 同样,可以将引用类型设置为 null,以指示它们未初始化。这种不一致会导致额外的编程工作,如使用附加变量来存储状态信息、使用特殊值,等等。可空类型修饰符使 C# 能够创建表示未定义值的值类型变量。可空类型可以表示基础类型的所有值,另外还可以表示 null 值。可空类型可通过下面两种方式中的一种声明:System.Nullable<T> variable 阅读全文
posted @ 2011-03-01 15:32 黄宝强 阅读 (282) 评论 (0) 编辑
摘要:值类型与引用类型值类型:派生自System.ValueType类的类型是值类型,派生自ValueType的类型都会自动在栈(stack)上进行分配,因此有一个可预测的生命周期,而且非常高效。引用类型:在继承链上没有System.ValueType的类型(如System.Type、System.String、System.Array、System.Exception以及System.Delegate)不会在栈上分配,而是在垃圾回收堆(heap)上进行分配。另:C#中的所有基类型都是结构类型(例如:int对应System.Int32结构),结构类型是值类型;类类型是引用类型;栈的执行效率要比堆的执 阅读全文
posted @ 2011-03-01 14:31 黄宝强 阅读 (1757) 评论 (7) 编辑
摘要:枚举类型枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。 例如,假设您必须定义一个变量,该变量的值表示一周中的一天。 该变量只能存储七个有意义的值。 若要定义这些值,可以使用枚举类型。枚举类型是使用 enum 关键字声明的。enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };如果未在枚举数列表中指定元素的值,则值将自动按 1 递增。 在前面的示例中,Days.Sunday 的值为 0,Days.Monday 的值为 1,依此类推。创建新的 Days 对象时,如果 阅读全文
posted @ 2011-03-01 09:34 黄宝强 阅读 (1703) 评论 (1) 编辑