2012-02-26 61 views
0

我想比較兩個類的類型,但我不斷收到錯誤。比較兩個類的類型

if (mediaTitleCollection[i].GetType() == Catalog.FilmMedia) 

我得到以下錯誤:'Catalog.FilmMedia'是一個'類型',在這種情況下無效。

我不確切地看到問題,因此我比較的主要事情是一種類型?

回答

5

使用typeof

if (mediaTitleColection[i].GetType()==typeof(Catalog.FilmMedia) 
4

您需要使用typeof()這將返回一個comparible類型。

if(mediaTitleCollection[i].GetType() == typeof(Catalog.FilmMedia)) 

或者你也許可以同時使用is操作:

if(mediaTitleCollection[i] is Catalog.FilmMedia) 
+1

我喜歡的是個人的選擇,因爲它使用更少的代碼來實現同樣的功能。 – tsells 2012-02-26 23:46:26

1

==右側嘗試typeof(Catalog.FilmMedia)

Catalog.FilmMedia不是運行時可以比較的任何東西 - 您必須將其變成Typetypeof

1

您需要使用typeof聲明

if (mediaTitleCollection[i].GetType() == typeof(Catalog.FilmMedia)) 
2

的是運營商更快,更容易閱讀,所以肯定使用它。

if(mediaTitleCollection[i] is Catalog.FilmMedia) 

,如果你需要投mediaTitleCollection[i]到FilmMedia你可以做的另一件事是:

Catalog.FilmMedia filmMedia = mediaTitleCollection[i] as Catalog.FilmMedia; 
if (filmMedia != null) 
{ 
    ... 
}