2011-07-27 21 views
1

我想知道是否有可能修改時檢查,如果一個對象的實例爲null,例如布爾值返回(我知道這是錯誤的,不完整的,只是想給大家一個參考):如果對象的實例爲空,是否可以修改檢查時返回的布爾值?

主要:

SuperObject obj = new SuperObject(); 

if (obj == null) Console.WriteLine("It is null lol!"); 

超對象:

public bool destroyed = false; 

public static bool operator ==(SuperObject A, object B) 
{ 
if (A != null && B == null && destroyed == true) 
     return true; 
} 

因此,如果式(A == NULL)被檢查並且A不是null,而是A.destroyed是TRUE,它會返回(A == null)爲TRUE。

基本上我希望(A == null)在下列情況下爲TRUE: A真是空OR A.destroyed = null;其他比較的默認值。

+6

從維護/可讀性的角度來看,這聽起來像是一個糟糕的主意,即使有可能 – BrokenGlass

回答

4

我建議這樣做,而不是:

public static bool IsDestroyed(SuperObject a) { 
    return (a == null || a.destroyed); 
} 

你的方法是非常混亂的新的開發。

+2

OP的方式會讓*任何*開發人員感到困惑,而不僅僅是新的! – LukeH

+0

感謝您的建議。 –

相關問題