首页 > Web开发 > 详细

.NET小细节

时间:2016-04-14 17:43:22      阅读:122      评论:0      收藏:0      [点我收藏+]

1、equals()和运算符==的区别

    C#中有两种不同的相等:引用相等和值相等。值相等是两个对象包含相同的值;引用相等是两个对象引用的是同一个对象。

    “==”操作符比较的是两个变量的值是否相等,或两个引用是不是指向同一个内存地址(类似比较文件夹的路径是否相同);

     equals()方法比较的是两个对象指向的内存空间中的内容是不是相同。

     对于string类型,==比较字符串的值。

     因为值类型是存储在内存中的栈中,而引用类型的变量在栈中仅仅是存储引用类型变量的地址,其本身则存储在椎中。

     ==操作符比较的是两个变量的值是否相等,对于引用类型变量表示的是两个变量在栈中存储的地址是否相同,即栈中的内容是否相同。

     equals()表示的是两个变量是否是对同一个对象的引用,即堆中的内容是否相同。

2、const和readonly的区别

  •  readonly修饰符用来表示只读,const用来表示不变常量。
  • readonly和const都是用来标识常量的
  • 初始化赋值不同:const必须在声明的同时赋值,readonly可以在声明或构造函数中赋值
  • const是编译时常数,readonly可用于运行时常数:const不能从一个变量中提取值来初始化,readonly可以用变量来初始化
  • const默认就是静态的,readonly必须显示声明为静态的(static)
  • const修饰的值的类型有限,readonly可以是任何类型

   

 

.NET小细节

原文:http://www.cnblogs.com/tkaren/p/5391901.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!