none
错误 CS0120: 非静态的字段、方法或属性“图元作业.Program.addshow()”要求对象引用? RRS feed

  • 问题

  • class Program
        {
            IFigure[] shape=new IFigure[100];
            int iCurrPlace = 0;
            public void AddOneCircle()
            {
                string s = "";
                float x = 0, y = 0, z = 0, r = 0;
                if (iCurrPlace >= 100)
                {
                    Console.WriteLine("wrong");
                    return;
                }
                shape[iCurrPlace++] = new Circle(s, x, y, r);
            }
            public void addshow()
            {
              
                float x=0, y=0, z=0,r=0;
                string s="";
                int i;
                for(i=0; i<100; i++)
                {
                    s=Convert.ToString(i);
                    x=y=z=r=i;
                    if(i%2==0)
                    {
                        shape[i]=new Circle(s,x,y,r);
                    }
                    else
                    {
                        shape[i]=new Sphere(s,z);
                    }
                }
                for(int j=0;j<100;j++)
                    shape[i].Display();
             }
           
          
            static void Main(string[] args)
            {
                addshow();
            }
         }
    2010年9月10日 3:37

答案

  • 1)Main函数作如下修改

     static void Main(string[] args)
      {
       Program program = new Program();
       program.addshow();
      }
    

    或者

    2)addshow方法做如下声明

     public static void addshow()
    
    希望有用。
    2010年9月10日 4:15
  • 主要原因是static void Main是个静态方法, addshow()是个非静态方法

    你在静态方法中调用了非静态方法,出现了这个错误


    http://blog.csdn.net/zx13525079024
    2010年9月10日 5:02

全部回复

  • 1)Main函数作如下修改

     static void Main(string[] args)
      {
       Program program = new Program();
       program.addshow();
      }
    

    或者

    2)addshow方法做如下声明

     public static void addshow()
    
    希望有用。
    2010年9月10日 4:15
  • 主要原因是static void Main是个静态方法, addshow()是个非静态方法

    你在静态方法中调用了非静态方法,出现了这个错误


    http://blog.csdn.net/zx13525079024
    2010年9月10日 5:02