码迷,mamicode.com
首页 > Web开发 > 详细

.NET小细节

时间:2016-04-14 17:46:06      阅读:142      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!