我知道如何測試一個對象,看它是否是一個類型,使用IS關鍵字例如測試一個對象是不是一個類型
if (foo is bar)
{
//do something here
}
你怎麼測試它不是「吧」?我似乎,但無法找到與是測試陰性結果工作的關鍵詞。
順便說一句 - 我有一個可怕的感覺,這是SOOOO明顯,所以道歉提前...
我知道如何測試一個對象,看它是否是一個類型,使用IS關鍵字例如測試一個對象是不是一個類型
if (foo is bar)
{
//do something here
}
你怎麼測試它不是「吧」?我似乎,但無法找到與是測試陰性結果工作的關鍵詞。
順便說一句 - 我有一個可怕的感覺,這是SOOOO明顯,所以道歉提前...
if (!(foo is bar)) {
}
沒有特定的關鍵字
if (!(foo is bar)) ...
if (foo.GetType() != bar.GetType()) .. // foo & bar should be on the same level of type hierarchy
這是'神祕而怪異'還是利用語言特徵? – 2009-01-07 04:18:12
你應該清楚你是否想測試的對象是正是從某種類型某種類型或分配。例如:
public class Foo : Bar {}
而且假設你有:
Foo foo = new Foo();
如果你想知道FOO是否沒有酒吧(),那麼你可以這樣做:
if(!(foo.GetType() == tyepof(Bar))) {...}
但如果你想確保foo不是來自Bar,那麼簡單的檢查就是使用as關鍵字。
Bar bar = foo as Bar;
if(bar == null) {/* foo is not a bar */}
我喜歡foo,因爲如果它是一個Bar,你肯定會想用foo做點什麼,所以你也可以爲這種情況編寫代碼。 – 2009-01-07 04:17:30
這是一個很好的問題。如果你已經嘗試過但並不明白,這並不明顯。也就是說,你可能想看看一些C#語法教程,他們將所有這些東西拼出來,還有你還沒有問過自己的東西。 – 2009-01-07 04:16:04