基本上我試圖用Actions來做this。我需要做這樣的事情,而不是一個屬性,因爲至少在其中一個實體引用另一個類的Action - 因爲你只能添加/刪除操作,而不是實際返回它們,我需要包裝它在一個添加/刪除而不是get。是否可以在添加/刪除界面中使用操作?
interface Whatever
{
Action MyAction { get; }
}
class WhateverConcretion : Whatever
{
Action MyAction
{
get { return SomeLibraryClass.StaticAction; }
}
}
我的項目依賴於特定平臺庫,所以我打算讓我的類依賴於一個包裝類的接口和每個平臺的庫上會被包裹在自己的講座,直到我來到這工作得很好包裝行動。
你試過了嗎?正如書面所述,這很好。你的鏈接是關於事件的,而不僅僅是爲代表使用屬性。 – 2013-05-03 16:24:48
看起來像你寫的應該工作得很好。我認爲你正在考慮事件 - 動作就像其他任何普通的C#對象一樣。 – Mason 2013-05-03 16:27:24
您已經完成了類型爲「Action」的***屬性***。屬性有一個或兩個訪問器,稱爲'get'和/或'set'。爲了讓***事件***改爲在類型('Action')之前包含關鍵字'event'。事件有兩個稱爲'add'和'remove'的訪問器。下面是一個例子:'公共事件Action MyEvent {add {...} remove {...}}'。 「Action」類型是委託類型,因此可用於事件。由於它的返回類型爲'void',並且沒有類型參數是逆變的,所以我認爲它是適合事件的類型。 – 2013-05-03 16:37:03