Accessing class member from static method

好久不见. 提交于 2019-11-28 12:37:26

How would you suggest I get Summary from either type of method?

You'll need to pass myCool to DoSomeOtherMethod - in which case you should make it an instance method to start with.

Fundamentally, if it needs the state of an instance of the type, why would you make it static?

You can't access instance members from a static method. The whole point of static methods is that they're not related to a class instance.

You simply can't do it that way. Static methods cannot access non static fields.

You can either make Summary static

public class SomeCoolClass
{
    public static string Summary = "I'm telling you";

    public void DoSomeMethod()
    {
        string myInterval = SomeCoolClass.Summary + " this is what happened!";
    }

    public static void DoSomeOtherMethod()
    {
        string myInterval = SomeCoolClass.Summary + " it didn't happen!";
    }
}

Or you can pass an instance of SomeCoolClass to DoSomeOtherMethod and call Summary from the instance you just passed :

public class SomeCoolClass
{
    public string Summary = "I'm telling you";

    public void DoSomeMethod()
    {
        string myInterval = this.Summary + " this is what happened!";
    }

    public static void DoSomeOtherMethod(SomeCoolClass instance)
    {
        string myInterval = instance.Summary + " it didn't happen!";
    }
}

Anyway I can't really see the goal you're trying to reach.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!