0
我有一個類的最後一個對象,我們稱之爲MyClass的,有幾個特性,其中之一是一個COM對象(從iFeature的ESRI的ArcObjects)。其他屬性是標準的.NET對象。所以它看起來像這樣:COM對象都指向於加入
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.
}
}
}
我注意到了奇怪的行爲。其他屬性正確枚舉 - 當我調試時,我發現它通過列表中的每個對象並獲取當前值。但Feature屬性總是指向集合中最後一個MyClass對象的值。
有沒有其他人遇到過嗎?
有一些奇怪的事情COM回事,我是不知道的?
顯示調用'DoStuffClass.Add'的代碼,並創建你的'MyClass'對象的代碼(如果分開)。我懷疑你只是在一個錯誤的範圍內有一個對象。 – 2013-05-10 17:12:28
我在Add方法中做了一個測試,在這個方法中我檢查了要添加的對象的Feature屬性中的值,它們是正確的,所以我不認爲這是問題。 – lintmouse 2013-05-10 17:14:49
取決於你如何檢查,這可能沒有幫助。例如。 http://ideone.com/8I4oXR – 2013-05-10 17:21:45