2014-06-09 2 views
0

IDE : VS 2010, C# .net인터페이스에 대한 공통 코드를 만드는 방법은 무엇입니까?

일부 속성이 포함 된 인터페이스 I를 구현하는 하위 클래스 A와 B가 있습니다.

그래서 공통의 코드를 유지하는 방법이 있나요, 여기에 우리가 코드

string str 
{ 
    get { return _str; } 
    set { _str = value; } 
} 

이 코드는 두 클래스 A와 B에서 흔히 볼 수있는이 코드를

class A : UserControl, I 
{ 
    string _str = "From a"; 
    string str 
    { 
     get { return _str; } 
     set { _str = value; } 
    } 
} 

class B : UserControl, I 
{ 

    string _str = "From b"; 
    string str 
    { 
     get { return _str; } 
     set { _str = value; } 
    } 
} 

를 참조하십시오 .. ?

참고 : A와 B는 모두 사용자 정의 컨트롤입니다.

답변

4

예, AB에서 파생되는 추상 클래스 C을 만듭니다.

모든 구현의 인터페이스가 기본 비 대체 가능 메소드를 갖기를 원하면 확장 메소드를 사용할 수 있습니다.

그러나 우리에게 보여준 시나리오는 생성자를 사용하여 가장 잘 구현됩니다.

class A : C 
{ 
    public A() : base("From a") 
    { 

    } 
} 

abstract class C : I, UserControl 
{ 
    public string Str {get; set;} 

    protected C(string someStr) 
    { 
     Str = someStr; 
    } 
} 
관련 문제