如何从静态方法访问类的当前实例?静态方法是必要的。我只想获得父表单的当前子表单的计数。我的代码如下,但它说“应用程序”#39;在当前上下文中不存在
private static ReturnOpenWindowCount()
{
Form f = (Form)Application.OpenForms["Form1"]
if(f.Children.Length > 0){//Do Something;}
}
答案 0 :(得分:1)
你不能,静态方法没有'当前实例'。您可以在有100个实例或0时调用静态方法,并且它可以在两种情况下都有效。它与任何实例都没有关系,除非您明确地创建一个实例,例如通过保留实例化表单的私有静态数组。这很可能是糟糕的风格和XY solution虽然与形式有关。
答案 1 :(得分:1)
Youc可以将参数中的Application
实例传递给此方法
答案 2 :(得分:0)
将实例作为参数传递。那就像你能得到的那样......
void Main()
{
Foo foo = new Foo();
Foo.ThisFoo(foo);
Console.WriteLine(foo);
Console.ReadLine();
}
// Define other methods and classes here
class Foo
{
int x = 0;
public static void ThisFoo(Foo foo)
{
foo.x = 1;
}
public override string ToString()
{
return "" + x;
}
}