2014-03-05 9 views
0

"개인 설정;"을 원하십니까? 어떤 대안이 있습니까?인터페이스 상속 및 액세스 한정자 설정

public interface IFoo 
{ 
    IEnumerable data { get; } 

} 

또는 당신은 명시 적으로 인터페이스를 구현할 수 있지만, 당신은 어떻게 든 set 메소드 구현해야합니다 :

public interface IFoo 
{ 
    IEnumerable data { get; set; } 

} 

public class Foo : IFoo 
{ 
    public IEnumerable data 
    { 
     get; 
     private set; 
    } 

} 
+1

비공개로 설정하면 인터페이스 계약을 위반하게됩니다. –

답변

1

당신은 인터페이스에서 set 접근을 제거 할 수 있습니다

public class Foo : IFoo 
{ 

    public IEnumerable data 
    { 
     get; 
     private set; 
    } 

    IEnumerable IFoo.data 
    { 
     get { return data; } 
     set { throw new NotSupportedException(); } 
    } 
} 
+0

차가움. 이 작동합니다. –