C#从类对象访问静态方法

时间:2017-10-26 08:30:32

标签: c# c#-4.0

我无法从新对象访问静态方法而不允许创建同名非静态方法。我需要使用相同名称方法静态和非静态。 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.
}

提前致谢。

1 个答案:

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