"==运算符未定义"会发生什么?
例如:
class a
{
int variable = 0;
}
class b
{
void proc()
{
a ref1 = new a();
a ref2 = new a();
bool cmp1 = ref1 == ref2;//?
bool cmp2 = ref1 == ref1;//?
}
}
在使用结构体时有何不同?
当使用序列化对象(单例)(System.Runtime.Remoting.*
)时呢?
MarshalByRefObject
,那么它们将是引用(因为MarshalByRefObject
是一个抽象类),因此默认情况下,只有两个变量指向同一实例时,==
才会返回true。 - Justin Ethier