0

例如,我有一个包含所有默认方法的静态类。如果我想生成一个属性并同时生成一个默认的静态方法怎么办---

static class Default
{
    //Auto-Generated
    static int DEFAULT_foo1()
    {
        //Do something
    }
    static float DEFAULT_var2
    {
        //Do something
    }

}

class Other
{
    //Code-Snippet
    int var1
    {
        get
        {
            return Default.DEFAULT_var1();
        }
    }
    float var2
    {
        get
        {
            return Default.DEFAULT_var2();
        }
    }
}
4

2 回答 2

2

我认为标准继承是一个很好的解决方案。

class OtherBase
{
    //Code-Snippet
    int var1
    {
        get
        {
            return Default.DEFAULT_var1();
        }
    }
    float var2
    {
        get
        {
            return Default.DEFAULT_var2();
        }
    }
}

派生类:

class Other : OtherBase
{
}
于 2012-06-18T16:27:37.393 回答
0

将类更改Default为单例而不是静态的。现在,您可以使用代码片段在同一类中实现方法和属性。其他类可以自动派生Default和继承这些属性。

class Default 
{
    public static readonly Default Instance = new Default();

    protected Default ()
    {
    }

    public static int DoFoo1() 
    { 
        //Do something 
    }

    public int Foo1 { get { return DoFoo1(); } }

    public static float DoVar2 
    { 
        //Do something 
    } 

    public float Var2 { get { return DoVar2(); } }
} 

class Other : Default
{
    // Inherits Foo1 and Var2 automatically
}

使用DefaultOther

int x = Default.DoFoo1();
int y = Default.Instance.Foo1;
Other other = new Other();
int z = other.Foo1;
于 2012-06-18T16:50:50.100 回答