例如,我有一个包含所有默认方法的静态类。如果我想生成属性并同时生成默认静态方法---
,该怎么办?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();
}
}
}
答案 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
}
使用Default
和Other
int x = Default.DoFoo1();
int y = Default.Instance.Foo1;
Other other = new Other();
int z = other.Foo1;