我在做一些代碼審查,並停止了以下構造。這是否正確使用ReferenceEquals
來檢查方法是否實際返回了作爲參數或新參數傳遞的相同對象?這種使用ReferenceEquals的方法是否正確
int x = 5;
Foo f = new Foo()
Foo DoSomething(Foo f)
{
if(x > 5)
{
return f;
}
else
{
return new Foo();
}
}
Foo ff = DoSomething(f);
if(Object.ReferenceEquals(ff, f))
{
//do something
}
當然。你也可以使用'ff == f',默認'Object.ReferenceEquals',假設'Foo'不會覆蓋'=='。如果它*覆蓋了操作員,那麼由您來決定哪一個是正確的。 – Rob