.这里有一个错误不知道那里错了:
using System;
class ThisDemo
{
    double e, exp;
    public double pwr(double a, double b)
    {
        e = a;
        exp = b;
        double result = 1;
        for (; exp > -1; exp--)
        {
            result = result * e;
        }
        return result;
    }
    public static void Main()//here static is what meaning;
    {
        Console.Write("3^4=" + pwr(3, 4));
        Console.Read();
    }
}
Complier read:
Error        1        An object reference is required for the nonstatic field, method, or property 'ThisDemo.pwr(double, double)'        E:\My Documents\Visual Studio 2005\Projects\ConstructorDemo\ConstructorDemo\ThisDemo.cs        18        32        ConstructorDemo
我真的不知道是什么意思.
请问各位大哥,这到底错在哪里?

解决方案 »

  1.   

    pwr是一个成员方法,是属于对象的Main方法是一个类方法(前面加了static),代表这个方法是属于类的而不是属于成员的,有两种修改的方式
      

  2.   

    using System;
    class ThisDemo
    {
    double e, exp; //你的算法还有些问题,答案不对
    public double pwr(double a, double b)
    {
    e = a;
    exp = b;
    double result = 1;
    for (; exp > -1; exp--)
    {
    result = result * e;
    }
    return result;
    }
    public static void Main()
    {
    //生成ThisDemo类的一个对象去调用pwr方法
    ThisDemo a = new ThisDemo();
    Console.Write("3^4=" + a.pwr(3, 4));
    Console.Read();
    }
    }
      

  3.   

    using System;
    class ThisDemo
    {
    //你的算法还有些问题,答案不对
    //将pwr该为静态的
    public static double pwr(double a, double b)
    {
    double e, exp;
    e = a;
    exp = b;
    double result = 1;
    for (; exp > -1; exp--)
    {
    result = result * e;
    }
    return result;
    }
    public static void Main()
    {
    //生成ThisDemo类的一个对象去调用pwr方法
    Console.Write("3^4=" + pwr(3, 4));
    Console.Read();
    }
    }
      

  4.   

    谢了,
    我是说这个算法只要把exp>-1 change to exp>0就可以了.
    另外关于class method 和 object method小弟也搞清了,
    谢谢各位大哥!!!^_^