2013年11月9日
摘要: 1、static 表示被修饰的对象的生命周期与当前的应用程序域相同,因此可以在多个实例中共享;2、const:声明常量的一种方式,必须是在声明时就要初始化值,一旦设定就不能修改,是编译时常量。就时说你引用const字段,在编译时就可以替换成相应的常量值。如果要把只读字段设置为静态,就必须显示声明他;3、readonly:声明常量的另一种方式在声明时可以初始化,同时在构造函数中也可以初始化。但是一旦构造函数运行完毕,其就不能再修改了,具有更大的灵活性,其值是在运行时确定的;所以相比const来讲,readonly具有更大的灵活性,更多的情况下可以选择readonly来使用;4、#define n 阅读全文
posted @ 2013-11-09 21:09 ForeverX 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 结构体和类具有相同的结构,但是他们还是有很多的区别的:1、结构中无限定修饰符的时候,默认为共有成员,但是在类中是私有成员;2、结构是值类型,但是类是属于引用类型;3、结构不容许继承,但是类可以继承;4、结构构造中编译器总是提供一个无参数的构造函数,不容许替换,所以在结构体中直容许提供有参数构造函数,提供字段的初始化值也不能绕过默认构造函数;5、结构主要用于小的数据结构(优点:内联或保存在栈中,分配内存快,释放快; 缺点:内容被复制,性能损失。所以把结构作为参数递给方法时,应把他作为ref参数传递,避免性能损失),类使用引用,,则只复制引用;6、默认构造函数把数值字段都初始化为0,把引用类型字段 阅读全文
posted @ 2013-11-09 20:26 ForeverX 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 参数传递:在C#中使用方法时,但是按照定义的顺序传递给方法,但是参数容许按任意顺序传递:string FullName(string FirstName, string LastName){ return FirstName + " " + LastName;}//调用方法1:FullName("John", "Doe");//调用方法2:FullName(LastName: "John", LastName: "Doe");可选参数:条件:1、必须可选参数提供默认值;2、可选参数不必须是最后一 阅读全文
posted @ 2013-11-09 16:28 ForeverX 阅读(450) 评论(0) 推荐(0) 编辑
摘要: ref参数和out参数实际上都是将值类型转化为引用类型。 但是他们还有区别: 在使用ref参数时,和其他方法传递参数一样,必须进行初始化,尽管在方法中会将其对应的值改变。但是在out参数使用的过程中是不需要去初始化的,更侧重于输出,方法对该变量进行的任何修改都会被保留下来。ref参数:static void SomeFunction(ref int i) { i = 10; } public static int Main() { int i = 20; //初始化 SomeFunction(... 阅读全文
posted @ 2013-11-09 16:09 ForeverX 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 字段和属性是C#面向对象模式中的两个概念,都属于类的成员。 字段(field) 用来存储数值或对象的真正实体,简单说是私有变量(不一定是私有...);属性(property) 对字段的封装(也不一定- -) 有get段落和set段落,通常是公开的 ,get段和set段执行过程都是轻量的。 说不一定是因为通常它们是这么用的,但是在不同设计模式和上下文场合 ,字段的私有会造成取值赋值的效率降低 比如你不得不对一个占用64字节的结构体频繁取值赋值 就用公开字段好了... 属性是个非常奇妙的东西 它包含着写段落和读段落所以又叫读写器正常的意义是field的wapper 因为你可以通过只写ge... 阅读全文
posted @ 2013-11-09 15:33 ForeverX 阅读(602) 评论(0) 推荐(0) 编辑