我想比较两个类的类型,但我不断收到错误。比较两个类的类型
if (mediaTitleCollection[i].GetType() == Catalog.FilmMedia)
我得到以下错误:'Catalog.FilmMedia'是一个'类型',在这种情况下无效。
我不确切地看到问题,因此我比较的主要事情是一种类型?
我想比较两个类的类型,但我不断收到错误。比较两个类的类型
if (mediaTitleCollection[i].GetType() == Catalog.FilmMedia)
我得到以下错误:'Catalog.FilmMedia'是一个'类型',在这种情况下无效。
我不确切地看到问题,因此我比较的主要事情是一种类型?
使用typeof
:
if (mediaTitleColection[i].GetType()==typeof(Catalog.FilmMedia)
您需要使用typeof()
这将返回一个comparible类型。
if(mediaTitleCollection[i].GetType() == typeof(Catalog.FilmMedia))
或者你也许可以同时使用is
操作:
if(mediaTitleCollection[i] is Catalog.FilmMedia)
您需要使用typeof声明
if (mediaTitleCollection[i].GetType() == typeof(Catalog.FilmMedia))
的是运营商更快,更容易阅读,所以肯定使用它。
if(mediaTitleCollection[i] is Catalog.FilmMedia)
,如果你需要投mediaTitleCollection[i]
到FilmMedia你可以做的另一件事是:
Catalog.FilmMedia filmMedia = mediaTitleCollection[i] as Catalog.FilmMedia;
if (filmMedia != null)
{
...
}
我喜欢的是个人的选择,因为它使用更少的代码来实现同样的功能。 – tsells 2012-02-26 23:46:26