IList<T>
の2つのタイプを比較しようとしています。両方のリストは同じT
を持っているので、私は彼らが同じタイプを持つべきだと思った。一般リストのタイプの比較
Visual Studioのツールチップのデバッグモードでは、両方のタイプを読むことができ、それは同じです。
しかし、Equals()
ant ==
オペレーターは両方ともfalse
を返します。
誰もこのweired behaviorinを説明できますか?
リトル例:
class Program
{
static void Main(string[] args)
{
IList<string> list1 = new List<string>();
IList<string> list2 = new List<string>();
var type1 = list1.GetType();
var type2 = typeof(IList<string>);
if (type1.Equals(type2))
{
Console.WriteLine("equal");
}
else
{
Console.WriteLine("non equal");
}
Console.ReadLine();
}
}
==>非等しい
編集: 私は悪い例をcoose、これは私がそれをしようとしていた方法を示しています。 List<string>
とIList<string>
:私は
あなたが実際にあなたの正確な例を試してみました:あなたの目標はあなたのタイプは、あなたが反射でそうすることができるインターフェース(すなわち
IList<string>
)を実装しているかどうかを判断することである場合?私はそれが動作することを期待しています... –
私は、右の行にステップするデバッガのためのコードをコンパイルする必要がありますね。 – shahkalpesh
typeof(List)は、クラスの同じインスタンスへの参照を常に返します。Type –
Seb