活到老,学到老,还有三分未学到。

.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());

  

直接调用,结果如下图:

 

posted @ 2021-07-29 10:57  欧琪study  阅读(112)  评论(1编辑  收藏  举报