这个.net有规定吗?
------解决思路----------------------
==操作对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。
对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。
------解决思路----------------------
是ReferenceEquals,实验可以证实 :
class Program
{
static void Main(string[] args)
{
A a1 = new A(), a2 = new A();
bool e1 = a1 == a2; // false
bool e2 = a1.Equals(a2); // true
}
class A
{
public override bool Equals(object obj)
{
return true;
}
}
}
因为
------解决思路----------------------
这个不引用msdn怎么行。
For predefined value types, the equality operator (==) returns true if the values of its operands are equal, false otherwise. For reference types other than string, == returns true if its two operands refer to the same object.
来自msdn:
== Operator (C# Reference)
https://msdn.microsoft.com/en-us/library/53k8ybth.aspx
------解决思路----------------------
string a = "123";
string b = "123";
if (a == b)
{
var c = true;
}
Test d = new Test();
var e = d;
if (d == e)
{
var f = true;
}
Test g = new Test();
if (d == g)
{
var h = true;
}
debug这段代码就在了。