[英]Is there a way to call a non-static method from a static method?
这就是我所拥有的。
public static void Person_home_phone_TextChanged(object sender, EventArgs e) { ... }
有没有办法从静态方法中访问相同或另一个类的非静态方法?
我需要抓取Person_home_phone文本框中的文本并将其保存到类数据成员中。
示例() - >示例
您只需要创建一个type
的实例,然后从static
方法调用non-static
实例。
public class Example(){
public static void StaticExample()
{
Example example = new Example();
example.NonStatic();
}
public void NonStatic()
{
}
}
您需要有一个类的实例来调用非静态方法。
解决方案#1:每次调用方法时实例化Car的新实例。
public static void DoSomething()
{
Car c = new Car();
c.NonStaticMethod();
}
解决方案#2:将汽车传递给方法。
public static void DoSomething(Car c)
{
c.NonStaticMethod();
}
解决方案#3:
使用单件汽车来支持静态方法。 (如果有可能来自多个线程的调用,则可能还需要锁定。请注意,System.Windows.Forms.Timer不会引入线程。)
public class Car
{
private static Car m_Singleton = new Car();
public static void DoSomething()
{
m_Singleton.NonStaticMethod();
}
请注意,您尚未解释Timer的内存问题。 很可能存在解决该潜在问题的方法。
您应该有一个对象来访问其方法。
静力学不属于对象。 它们属于类声明。
实例方法(vel。非静态)只能在该类的实例的上下文中调用。 所以你可以调用它,但你必须在静态方法中的某个地方提供该类的对象。
非静态方法需要类的实例。 除非您已经传入实例,或者在方法中创建了实例,否则不能调用非静态方法,因为您不知道该方法应该对哪个类进行操作。
您需要类类的实例来调用非静态方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.