随笔分类 - C#
摘要:扩展方法(Extension Method) MSDN定义:能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法须知: 1、扩展方法声明所在的类必须被声明为static 2、扩展方法必须被声明为static 3、扩展方法必须包含this关键字作为它的第一个参数类型,并后跟所扩展的类的名称创建扩展方法//通过扩展方法 创建一个类似List FindAll方法namespace Blog_ExtensonMethod{ //静态类 public static class ExtensionMethods { //声明一个委托(本次不是...
阅读全文
摘要:起因 问:静态类可以实现接口及继承? 答:都不可以 思考:为什么不可以呢?学习 静态类,有时我们又称为工具类(密封抽象类),从MSDN文档没有直接静态类的定义,这里只能说用static(不能用于结构,只能用于类)关键字声明的类,就是静态类。 静态类与非静态类的区别:静态类不能实例化,就是不能通过使用 new 关键字创建静态类类型的变量。通过类名本身访问自身成员; 特性:1、仅包含静态成员(字段、方法、属性、事件) 2、无法实例化 3、是密封的 4、不能包含实例构造函数定义静态类及其使用 //定义静态类和静态方法,未定义静态字段、属性、事件 public static class Com...
阅读全文
摘要:装箱:一种接受值类型的值,根据这个值在堆中创建一个完整的引用类型对象并返回对象的引用(堆地址)的隐式转换int i_number = 2; //在栈中声明int类型i_Number变量并初始化object o_number = null; //在栈中声明object类型的o_Number变量并初始化值为null,不在堆中分配内存o_number = i_number; //装箱过程 如下图所示①→②→③ Console.WriteLine(o_number); 装箱过程:1.在托管堆分配好内存,分配的内存量是值类型的字段需要的内存量(类型对象指针和同步索引块); 2.值类型的字...
阅读全文
摘要:引用类型和值类型介绍 CLR支持两种类型,引用类型和值类型两种基本的类型; 值类型下有int、double、枚举等类型同时也可以称为结构,如int结构类型、double结构类型,所有的值类型都是隐式密封(sealed)的,防止将一个值类型作其他引用类型或值类型的基类。 任何成为类的都是引用类型。如string、StringBuilder都是引用类型,这两个是引用类型,但不可以被继承,它两也是密封类。引用类型和值类型的区别是: 值类型是用struct关键字来声明的,引用类型是用class关键字来声明的; 值类型相对于引用类型是轻量级的类型,所有成员初始化为0,因为其变量已经包含了实例的字段,且不
阅读全文
摘要:基元类型:编译器直接支持的数据类型 基元类型直接映射到FCL类库上,如int 和Int32是等价的,只不过是int是c#提供的,Int32是FCL类库提供的。 int只是Int32的别名using int=System.Int32;使用Int32:System.Int32 number = new System.Int32();number = 2; Console.WriteLine(number); Console.ReadKey(); 生成IL代码为:.method private hidebysig static void Main(string[] args) cil managed
阅读全文

浙公网安备 33010602011771号