2012-02-26 14 views
0

2つのクラスタイプを比較しようとしていますが、エラーが続いています。2つのクラスタイプの比較

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

私は次のエラーを取得:「Catalog.FilmMediaは」は、このコンテキストでは有効ではありません「タイプ」です。

私はちょうど問題を参照していないので、私と比較している主なものは型ですか?

答えて

5

使用typeof

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

あなたがcomparibleタイプを返しますtypeof()これを使用する必要があります。

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

またはあなたは多分またis演算子を使用することができます。

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

私はそれは、同じ機能を実現するために以下のコードを使用して個人的にオプションですね。 – tsells

1

==の右側にtypeof(Catalog.FilmMedia)を試してみてください。

Catalog.FilmMediaはランタイムと比較できるものではありません。Typetypeofとする必要があります。あなたはザ・オペレーターである

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

はより速く、読みやすいので、間違いなくそれを使用しています。

if(mediaTitleCollection[i] is Catalog.FilmMedia) 

あなたはFilmMediaにmediaTitleCollection[i]をキャストする必要がある場合は、あなたが行うことができ、他の事は次のとおりです。

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

typeof演算ステートメントを使用する必要が