我有一個類包含一些公共xxx作爲List(Of someType)。這在我們的代碼中廣泛使用。不幸的是,我還需要將這些列表作爲ArrayList提供,因爲我們需要可以在VBA中訪問相同的對象(專門用於Excel)。我可以繼承一個類來爲泛型提供互操作嗎?
我所熟悉的抽象和超控/新的,但是這將意味着改變的代碼,這已經實現了一個一大堆,而且,我的眼睛,創造了額外的代碼很多(有可能的50這些東西)來抽象出對象,事實上這是99%的時間使用的情況。
這裏的基本問題......
public class cProp
private Eyes as List(Of Integer)
public property Eyes as List(Of Integer)
'get and set that does a lot of work
end property
'repeat 50 times
end class
幾乎所有的我們的代碼使用cprop可這麼寫,有沒有別的好像它做什麼,但引入錯誤50項抽象基類。所以理想情況下,我想要像...
<ClassInterface(ClassInterfaceType.AutoDual)>
public class dProp
inherits cProp
public readonly property **something** Eyes as ArrayList
'convert List to ArrayList
end property
end class
如果這樣的事情存在,我還沒有弄清楚。
簡單地添加一個單獨的只讀屬性的負載EyesArray等,提供了現有的道具ArrayLists的缺點是什麼? – tolanj 2014-10-06 19:14:01
從不公開實現,COM客戶端只使用接口。在這種情況下System.Collections.IList。爲它找到一個實現很簡單,List <>實現它。 – 2014-10-06 19:32:38
@tolanj,我可以有兩個屬性只在返回類型中有所不同嗎?我認爲他們必須在*參數*上聚合,特別是在編譯器不知道返回類型的COM中? – 2014-10-06 19:48:15