기본적으로 작업으로 this을 (를) 수행하려고합니다. 적어도 하나의 concretions에서 다른 클래스의 Action이 참조되기 때문에 속성과 반대되는 작업을 수행해야합니다. Action에 추가/제거 만 할 수 있고 실제로 반환하지 않기 때문에 액션을 래핑해야합니다. get이 아닌 add/remove.add/remove가있는 인터페이스에서 Actions를 사용할 수 있습니까?
interface Whatever
{
Action MyAction { get; }
}
class WhateverConcretion : Whatever
{
Action MyAction
{
get { return SomeLibraryClass.StaticAction; }
}
}
내 프로젝트는 그래서 나는 내 수업은 내가 올 때까지 잘 작동 자신의 클래스 -에 싸여 될 것이다 래퍼 클래스에 대한 인터페이스 및 각 플랫폼의 라이브러리에 의존 할 계획 플랫폼 특정 라이브러리에 따라 달라집니다 조치 래핑.
시도해 보셨습니까? 서면으로 잘 작동합니다. 귀하의 링크는 대리인을위한 속성을 사용하는 것뿐만 아니라 이벤트에 관한 것입니다. –
당신이 쓴 것이 잘 작동해야합니다. 나는 당신이 사건을 생각하고 있다고 생각합니다 - 행동은 다른 어떤 것과 마찬가지로 평범한 C# 객체입니다. – Mason
당신은 '행동'유형의 *** 속성 ***을 만들었습니다. 속성에는'get' 및/또는'set'라고하는 하나 또는 두 개의 접근자가 있습니다. 대신 *** 이벤트 ***를 만들려면 유형 ('Action') 바로 전에 키워드'event'를 포함하십시오. 이벤트에는'add'와'remove'라는 두 개의 접근자가 있습니다. 다음은 그 예입니다 :'public event Action MyEvent {add {...} remove {...}}'. '액션'유형은 델리게이트 유형이므로 이벤트에 사용할 수 있습니다. 반환 유형이'void'이고 반올림하지 않는 유형 매개 변수가 없기 때문에 이벤트에 적합한 유형이라고 말할 수 있습니다. –