我无法从新对象访问静态方法而不允许创建同名非静态方法。我需要使用相同名称方法静态和非静态。 Foo类有一些默认变量。我创建新对象并设置默认变量。 示例代码块
class Foo
{
public void abc()
{
//...
}
public static string xyz(string s)
{
return "bla bla";
}
}
public void btn1_click()
{
System.Windows.Forms.MessageBox.Show(Foo.xyz("value"));
//Works OK
}
public void btn1_click()
{
Foo f1=new Foo();
//f1..
f1.xyz("value");
//Cant access non static method.
}
提前致谢。
答案 0 :(得分:0)
如果类具有默认值,则填充它们的正确位置在类构造函数中:
public class Foo
{
public Foo()
{
// set default values here.
}
}
如果您仍想将这些默认值用作静态成员 - 没问题:
public class Foo
{
public static const int DEFAULT_INT_VALUE = 5;
public Foo()
{
IntValue = DEFAULT_INT_VALUE;
}
public int IntValue {get;set;}
}