クラスがあります。それを MyClass と呼びましょう。いくつかのプロパティがあり、そのうちの 1 つは COM オブジェクト (ESRI ArcObjects の IFeature) です。その他のプロパティは、標準の .NET オブジェクトです。したがって、次のようになります。
public class MyClass
{
//COM object
public IFeature Feature { get; set; }
public MyOtherClass Other { get; set; }
}
この人物は、Add メソッドを通じて別のクラスのリストに追加されます。次に、これらの MyClass オブジェクトは、リストを使用してクラスの foreach ループで列挙されます。何かのようなもの:
public DoStuffClass()
{
private List<MyClass> myClasses;
public void Add(MyClass myClass)
{
this.myClasses.Add(myClass);
}
public void DoStuff()
{
foreach (MyClass myClass in this.myClasses)
{
//Do stuff here.
}
}
}
奇妙な行動に気付きました。Other プロパティは正しく列挙されます。デバッグすると、リストにある各オブジェクトを通過して現在の値を取得することがわかります。ただし、Feature プロパティは常に、コレクション内の最後の MyClass オブジェクトの値を指しています。
他の誰かがこれに遭遇しましたか?
私が気付いていない奇妙なCOMのことが起こっていますか?