小弟构建了一个函数, 是算哈希表里面最小的键值,并且返回这个最小值,但是在程序中引用函数的时候出现了:
非静态的字段,方法,或属性这样的错误,希望高手能指点,代码片度如下:
using system;
public class
{
  static void Main(string[] args)
  {
    Hashtable hst = new Hashtable();
    //定义了一个hashtable;
    
    double k = mini(hst);       //就是这里提示出现问题,说非静态的什么的
    Console.WriteLine("value k: {0}", k);
  }
   public double mini(Hashtable hs)
        {
            int i = 0;
            double fist = 0;
            foreach (DictionaryEntry de in hs)//遍历哈希表,求出最小值
            {
                i = i + 1;
                if (i == 1)
                {
                    fist = (double)de.Value;
                    continue;
                }
                else
                {
                    double a = (double)de.Value;
                    if (fist <= a)
                    {
                        continue;
                    }
                    else
                    {
                        fist = a;
                    }
                }
            }            return (fist);
        }
}
小弟新手,希望大家帮忙。

解决方案 »

  1.   

    public double mini(Hashtable hs)
      {改为
    public static double mini(Hashtable hs)
      {
      

  2.   

    public double mini(Hashtable hs)
    ==
    public static double mini(Hashtable hs)
      

  3.   

    因为你的main是static的,而你的mini函数也跟main在一个类里面。
    记住:相同类里面的静态函数,要访问本类的函数的话,只能访问本类里面的静态函数。
      

  4.   

    public double mini(Hashtable hs)
    ----------------
    加static修饰static 的main 必须调用static函数
      

  5.   

    静态方法和属性只能访问静态字段和静态事件
    public static  double mini(Hashtable hs)
    {}