摘要:
ref 的使用场景:调用方法传递参数的时候,对于值类型是“整体拷贝”,在方法的修改只在方法内有效,方法结束,从栈上弹出。在方法外不会产生副作用。ref 就是针对这种情况设计的,ref修饰的参数,强制参数按引用传递,在方法内的修改产生副作用。out 的使用场景:与ref 类似。ref 与 out的区别在于:1、ref 必须在方法调用前,进行显式的初始化。2、out 不需要再方法调用前进行初始化,但是在方法返回之前,必须完成赋值操作。方法定义和方法调用的地方,都必须显式地使用关键字ref 或者out,ref 与 out的实现原理应该是 对值类型进行了装箱。 阅读全文
posted @ 2012-01-10 14:57
Andy Niu
阅读(329)
评论(0)
推荐(0)
摘要:
值类型:1、值类型在栈上分配内存2、值类型超出作用范围,从栈上弹出,自动释放内存3、值类型包括两类:结构和枚举,结构包括BCL中的结构和自定义的结构。BCL中的结构也就是基础类型(Primitive Type),包括:整形(Sbyte、Byte、Char、Short、Ushort、Int、Uint、Long、Ulong)浮点型(Float、Double)decimalbool4、值类型赋值或者通过方法传递参数是 “整体拷贝”引用类型:1、引用类型在堆上分配内存2、GC管理堆上的引用类型3、引用类型包括类、接口、委托、数组和string4、引用类型赋值或者通过方法传递参数是 “复制引用”需要注意 阅读全文
posted @ 2012-01-10 14:08
Andy Niu
阅读(277)
评论(0)
推荐(0)
摘要:
代码:View Code 1 class Program 2 { 3 static void Main() 4 { 5 int a = 123; 6 string s1 = a.ToString(); 7 string s2 = Convert.ToString(a); 8 string s3 = ((IConvertible)a).ToString(null); 9 10 string s = "456";1... 阅读全文
posted @ 2012-01-10 13:44
Andy Niu
阅读(450)
评论(0)
推荐(0)
摘要:
ToString的设计目的:为对象提供一个字符串,该字符串描述当前对象的信息。1、Object的ToString 返回当前对象所属类型的全名,这个意义不大,但是设计很合理,因为有些对象没法返回一个有意义的字符串说明,比如FileStream或者HashTable。2、Object 是所有类的根,所有类都直接或者间接继承Object。这些类大部分都重写了ToString方法。特别是值类型,比如int,double,值类型重写ToString,将实例的数值转换为等效的字符串。 阅读全文
posted @ 2012-01-10 13:33
Andy Niu
阅读(335)
评论(0)
推荐(0)
摘要:
override的使用场景:重写父类的内容。这里主要讲重写父类的方法,重写必须满足以下约束:1、方法名、返回类型、参数签名完全相同。2、具有相同的访问权限(在Java中,重写不能扩大访问权限,如果父类方法抛出异常,子类方法只能抛出相同或者更具体的异常,或者不抛出异常(等价于抛出相同的异常),否则里氏代换会出现问题。)override的使用场景细分为以下三类:1、重写abstract,必须重写。2、重写virtual,可以重写。重写,调用子类的方法;不重写,调用父类的方法。3、重写override,在重写的基础上再次重写。当子类方法与父类方法的方法名、返回类型、访问权限、参数签名完全相同时,默认 阅读全文
posted @ 2012-01-10 11:34
Andy Niu
阅读(531)
评论(0)
推荐(0)