2013年11月19日

扩展方法

摘要: /*扩展方法,如果一个需要更改一个类如果有源码那就用继承给对象添加功能。如果没有源码,那就用扩展方法给对象添加功能。添加扩展方法必须是非泛型的静态类中定义,而且必须是静态方法。*/namespace Frank{ public class Test { public static void Main(string[] args) { Extension e = new Extension(); e.Add(1); } } public static class AddExtension { public static void... 阅读全文

posted @ 2013-11-19 16:37 wp456 阅读(167) 评论(0) 推荐(0)

静态类、静态方法、静态构造函数

摘要: /*静态类、静态方法、静态构造函数静态构造函数由CLR调用,在类第一次实例化的时候调用。而且最多调用一次。不能有参数,有参数也没有意义,因为C#代码无法调用静态构造函数。访问修饰符也没有意义。*/namespace Frank{ public class Test { public static void Main(string[] args) { Test2.Get(); } } public static class Test2 { static Test2() { } static void Get() { ... 阅读全文

posted @ 2013-11-19 16:20 wp456 阅读(273) 评论(0) 推荐(0)

部分类 partial

摘要: /*部分类 partial允许把同一个类的不同部分放在不同的文件里面。不能有相同的成员。访问级别必须相同*/namespace Frank{ public partial class Test { public static void Main(string[] args) { } } public partial class Test { public int Age{get;set;} }} 阅读全文

posted @ 2013-11-19 16:01 wp456 阅读(166) 评论(0) 推荐(0)

结构体

摘要: /*结构体 轻型数据体字段成员不能赋值为直接量。结构体跟类不同的是在使用new关键字的时候并不会再堆中分配内存,只是调用构造函数。即使不对结构体进行初始化也能用。结构体不能覆盖系统分配的无惨构造函数。结构体是按值传递,所以在方法内部修改结构体内部的字段并不会对原有的结构体字段改变,除非使用ref关键字。结构体并不支持继承但可以实现接口,但是所有的结构体都继承System.ValueType,ValueType又继承了Object。*/namespace Frank{ public class Test { public static void Main(string[] a... 阅读全文

posted @ 2013-11-19 15:52 wp456 阅读(158) 评论(0) 推荐(0)

C#匿名类型

摘要: var doctor = new {FN="1"}; 编译器自动推断类型System.Console.WriteLine(doctor.FN); 不要用新对象上的任何反射类型,因为这会得到不一样的结果。 阅读全文

posted @ 2013-11-19 15:19 wp456 阅读(79) 评论(0) 推荐(0)

out和ref

摘要: /*out和refref 按引用传递,一般用于结构体类型和string类型,引用类型不需要ref也能修改里面的值。使用前必须初始化变量out 输出参数,使用前可以不需要初始化参数。但离开方法体的时候必须对变量进行赋值。*/namespace Frank{ public class Test { public static void Main(string[] args) { int i = 20; Get(ref i); System.Console.WriteLine(i);//输出10 string str = "2"; Get(ref... 阅读全文

posted @ 2013-11-19 14:08 wp456 阅读(153) 评论(0) 推荐(0)

导航