.net是否可以从一个static方法内部发出对非static方法的调用?
1.同一个非静态类中的非静态方法:实例化对象后可以,否则不可以
1)未实例化对象调用同一类中非静态方法
代码如下:
public class TestB { public static int GetCount() { return GetCount2(); } public int GetCount2() { return 9 + 9; } }
可以清楚地看到提示报错,如下图
2)实例化对象调用同一类中非静态方法
public class TestB { public static int GetCount() { return new TestB().GetCount2(); } public int GetCount2() { return 9 + 9; } }
Console.WriteLine("GetCount:" + TestB.GetCount());
运行后如下图,成功输出结果
2.不是同一个类中的非静态方法:可以
申明TestA类和TestB类:
public class TestA { public int GetCount() { return 1 + 1; } }
public static class TestB //亦可不申明为静态类 public class TestB { public static int GetCount() { return new TestA().GetCount(); } }
Console.WriteLine("GetCount:" + TestB.GetCount());
直接调用,结果如下图: