从静态方法访问类成员
我知道有很多线索在谈论这个问题,但到目前为止我还没有找到一个直接帮助我的情况。 我有我需要从静态和非静态方法访问的类的成员。 但是,如果成员是非静态的,我似乎无法从静态方法中获得它们。
public class SomeCoolClass
{
public string Summary = "I'm telling you";
public void DoSomeMethod()
{
string myInterval = Summary + " this is what happened!";
}
public static void DoSomeOtherMethod()
{
string myInterval = Summary + " it didn't happen!";
}
}
public class MyMainClass
{
SomeCoolClass myCool = new SomeCoolClass();
myCool.DoSomeMethod();
SomeCoolClass.DoSomeOtherMethod();
}
你会如何建议我从任何一种方法得到摘要?
你会如何建议我从任何一种方法得到摘要?
您需要将myCool
传递给DoSomeOtherMethod
- 在这种情况下,您应该将其作为一个实例方法开始。
从根本上说,如果它需要这种类型的实例的状态,为什么你会把它变成静态的?
您不能从静态方法访问实例成员。 静态方法的重点在于它们与类实例无关。
你根本无法这样做。 静态方法不能访问非静态字段。
您可以使Summary
静态
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!";
}
}
或者,您可以将SomeCoolClass的实例传递给DoSomeOtherMethod并从刚刚传递的实例中调用Summary
:
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!";
}
}
无论如何,我无法真正看到你想要达到的目标。
链接地址: http://www.djcxy.com/p/96369.html