我正在尝试比较两种类型,但我不断收到错误。
if (mediaTitleCollection[i].GetType() == Catalog.FilmMedia)
我收到以下错误:'Catalog.FilmMedia'是'type',在此上下文中无效。
我没有完全看到问题,因此与我相比较的主要因素是一个类型?
答案 0 :(得分:5)
使用typeof
:
if (mediaTitleColection[i].GetType()==typeof(Catalog.FilmMedia)
答案 1 :(得分:4)
您需要使用typeof()
这将返回一个比较类型。
if(mediaTitleCollection[i].GetType() == typeof(Catalog.FilmMedia))
或者您也可以使用is
运算符:
if(mediaTitleCollection[i] is Catalog.FilmMedia)
答案 2 :(得分:2)
is运算符更快更容易阅读,所以一定要使用它。
if(mediaTitleCollection[i] is Catalog.FilmMedia)
如果您需要将mediaTitleCollection[i]
投射到FilmMedia,您可以做的另一件事是:
Catalog.FilmMedia filmMedia = mediaTitleCollection[i] as Catalog.FilmMedia;
if (filmMedia != null)
{
...
}
答案 3 :(得分:1)
答案 4 :(得分:1)
您需要使用声明类型
if (mediaTitleCollection[i].GetType() == typeof(Catalog.FilmMedia))