.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());
直接调用,结果如下图:


浙公网安备 33010602011771号