Code-snippet Visual C#同时在其他地方自动生成方法?

时间:2012-06-18 16:22:06

标签: c# visual-studio-2010

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

,该怎么办?
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();
        }
    }
}

2 个答案:

答案 0 :(得分:2)

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

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

派生类:

class Other : OtherBase
{
}

答案 1 :(得分: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;