당신은 속성으로 추가해야 거라고 말한다 . 이것은 당신이이 인터페이스를 구현할 때 (분명히있을 수 있지만 간단한 자동 속성) 당신은뿐만 아니라 실제 속성을 제공해야한다는 것을 의미 않습니다
public class Foo : IYourInterface
{
public Action<string> YourAction { get; set; }
// ...
}
당신이 다음에서
Action<string>
를 사용할 수 있음을 감안할 때 인터페이스는 :
IYourInterface iFoo = new Foo();
iFoo.YourAction = s => Console.WriteLine(s);
iFoo.YourAction("Hello World!");
한스 바와 같이, 당신은 당신의 인터페이스에 표시 할 수 있습니다 단지 get
(또는 단지 set
) 당신이 원하는 경우. 이것은 클래스 이 다른 클래스를 가질 수 없다는 것을 의미하지는 않으며, 인터페이스를 통해 액세스 할 수 없다는 것을 의미합니다. 예를 들어 :
public interface IYourInterface
{
Action<string> YourAction { get; }
}
public class Foo : IYourInterface
{
public Action<string> YourAction { get; set; }
}
그래서 위의 코드에서, 당신은 단지 인터페이스를 통해
get
로
YourAction
속성에 액세스 할 수 있지만, 당신은 할 수
set
또는
Foo
클래스
get
을.
대리인을 계약/인터페이스에 추가하는 것은 좋지 않습니다. –
@KirillPolishchuk 당신은 설명 할 수 있습니까? – anatol