如何为界面制作通用代码?

时间:2014-06-09 07:39:28

标签: c# visual-studio-2010 user-controls

IDE:VS 2010,C#.net

我有一个Child类A和B,它正在实现包含一些属性的接口I.

请参阅此代码

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; }
    }
}

在这里我们可以看到代码

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

这个代码在A和B类中都很常见,那么有没有办法让这段代码保持通用..?

注意:A和B都是用户控件。

1 个答案:

答案 0 :(得分:4)

是的,创建一个CA派生自的抽象类B

或者,如果您希望接口的所有实现都具有默认的不可覆盖方法,则可以使用扩展方法。

但是,您向我们展示的场景最好通过构造函数实现。

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

    }
}

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

    protected C(string someStr)
    {
        Str = someStr;
    }
}