c#细节
X___V
开源
展开
-
c#走出误区。
昨天看《c# in Depth》,有部分是走出误区。觉得不错,故记之。 1.不少人认为引用类型在堆上,值类型在栈上,前半部分是对的,但后半部分就有问题了。假设一个类中有一个int类型的实例变量,那么这个类的任何对象中,该变量的值总是和对象中的其他数据在一起,也就是在堆上。 2.对象在c#中默认是通过引用传递的。其实这种说法是错误的,引用类型作为方法参数使用时,参数默认传递是以“值传递”原创 2013-03-29 15:54:32 · 576 阅读 · 0 评论 -
C#Equals()和运算符==的区别
1.对于值类型 如果对象的值相等,则相等运算符==返回True,否则返回False 2.对于引用类型 equals方法比较的是两个对象指向的内存空间内容是不是相同。也就是比较两个引用类型是否是对同一个对象的引用,即两个对象的内容是否相等。 对于string类型,==比较字符串的值 对于引用类型,==操作符类似于比较的是文件夹的路径是否相同,而equals方法比较的原创 2013-03-20 22:31:45 · 560 阅读 · 0 评论 -
C# const和readonly的区别
初始化赋值不同 const修饰的常量必须在声明的同时赋值,例如: public class Class1 { public const int MaxValue = 10;//正确声明 public const int maxValue; //错误,常量字段要求提供一个值 public Class1() {原创 2013-03-20 22:59:34 · 574 阅读 · 0 评论 -
private,protected,public和internal的区别
private是完全私有的,只有在类自己里面可以调用,在类外部和子类都不能调用,子类也不能继承父类的private属性和方法protected虽然可以被外界看到,但外界却不能调用,只有自己及自己的子类可以调用(属性和方法都可以被子类所继承和调用)private和protected的共同点:外部都不可以访问private和protected的区别:在同一类中可以视为一样,继承中可以体现区别priva原创 2013-03-20 23:23:16 · 721 阅读 · 0 评论 -
sealed,new,virtual,abstract与override
1.sealed---“断子绝孙” 密封类不能被继承,不会有子类。密封方法可以重写基类中的方法。 2.new---“你是你的,我是我的” new关键字用于显式隐藏从基类继承的成员,也就是说在使用派生类时调用的方法是new关键字新定义出来的方法,而不是基类的方法。在不使用new修饰符的情况下隐藏成员是允许的,但会生成警告。使用new显式隐藏成员会取消此警告,并使用派原创 2013-03-20 23:35:04 · 655 阅读 · 0 评论