zoukankan      html  css  js  c++  java
  • 引用相等和值相等

    相同的引用肯定有相同的值,但是相同值却不一定有相同的引用

    C# 中有两种不同的相等:引用相等和值相等。值相等是大家普遍理解的意义上的相等:它意味着两个对象包含相同的值。例如,两个值为 2 的整数具有值相等性。引用相等意味着要比较的不是两个对象,而是两个对象引用,且两者引用的是同一个对象

     

     

    在默认情况下Equals只能在引用类型中用,但是在ValueType类型中已经重写了Equals方法,所以通常情况下Equals方法既可以用于引用类型,也可以应用于值类型;在引用类型中Equals方法比较的是引用相等,而在值类型中Equals方法比较的是值相等。

     

     

    在.NET中,ReferenceEquals()方法是专门用来表示引用相等的;

    ==运算符和Equals()方法都可以用来表示引用相等和值相等。对于值类型而言, ==和Equals()方法是一样的,使用上没有什么区别。那么重点是引用类型:

    从效果上说,对于引用类型, ==运算符表示引用相等(string有运算符重载,除外),而Equals()表示值相等。从效果上讲,这个说法好像不算错,网上也有这么一种说法。

     

  • 相关阅读:
    偏函数 匿名函数 高阶函数 map filter reduce
    函数
    Python的字符串格式化
    集合
    列表 元组 字典
    字符串
    数字
    Python基础-杂项
    Java 和C/C++的“语法”上的差异!
    MySQL基础原创笔记(一)
  • 原文地址:https://www.cnblogs.com/kelei12399/p/2468312.html
Copyright © 2011-2022 走看看