2012-02-26 114 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) 
{ 
    ... 
}