值相等
判断两个基本类型的变量, 他们的值相等性。针对由struct
自定义类型, 相等运算符不能判断其值的相等性, 必须重载运算符。 元组 支持值相等判断。如果基本整数类型的相应值相等,则相同枚举类型的两个操作数相等。
nan (
Double.NaN
、Single.NaN
) 参与的大小、相等判断, 结果一定返回 false
引用相等
两个非记录(记录)引用变量引用同一个对象, 也即是指向同一内存区域, 则是引用相等。用户自定义引用类型支持 == 运算, 同时也可以重载改运算符, 用来判断自定义类的引用相等性。重载运算符时必须使用 Obejct.ReferenceEquals
方法来检查相等性。
记录类型相等性
记录相等本质上是实例的值相等, 当两个记录的操作数均为 null, 或者所有字段对应值或自动实现的属性相等时, 两个记录操作数就相等。自#csharp9 开始, 记录类型支持 == 和 !=
字符串相等
两个字符串均为 Null , 或者他们长度相同且对应位置的字符相同, 则字符串相等。同时字符串也支持大小比较, 参看 如何在 C# 中比较字符串。
委托相等
委托类似 c 语言的函数指针, 是一种对函数的引用。相等运算符只能用于两个相同类型的委托。若两个委托均为 null , 或者他们入参一致则相等。委托可以进行加法运算。这里需要完善。#todo#csharp