按钮点击下去 开始执行循环  下面这个方法执行效率很慢  有没有比较好点的方法 比如C里面的函数指针那样的。委托不太会用,求助!
就是比如n=5的时候,Vo_function(5)是有值了,但是在执行n=6的时候,怎样把Vo_function(5)的值拿来直接用而不去继续运算        private void button1_Click(object sender, EventArgs e)
        {
         
            for (int n = 1; n < 2000; n++)
            {
               double voo =  Vo_function(n);
               double ioo =  Io_function(n);
            }        }
        public static double Vo_function(int n)
        {
            double jieguo;            if (n == 1)
            {
                jieguo = 0;            }
            else
            {                jieguo = Vo_function(n - 1) * 2 + Io_function(n - 1) * 1 + 2;            }             return jieguo;
        }
        public static double Io_function(int n)
        {
            double jieguo;            if (n == 1)
            {
                jieguo = 0;            }
            else
            {
                jieguo = Io_function(n - 1) * 2 + Vo_function(n - 1) * 3 + 3;
            }            return jieguo;
        }

解决方案 »

  1.   

    static private Dictionary<int, double> voDict = new Dictionary<int, double>();
            static Dictionary<int, double> ioDict = new Dictionary<int, double>();
            public static double Vo_function(int n)
            {
                if (voDict.ContainsKey(n))
                    return voDict[n];
                double jieguo;
                if (n == 1)
                {
                    jieguo = 0;
                }
                else
                {
                    jieguo = Vo_function(n - 1) * 2 + Io_function(n - 1) * 1 + 2;
                }
                voDict.Add(n, jieguo);
                return jieguo;
            }
            public static double Io_function(int n)
            {
                if (ioDict.ContainsKey(n))
                    return ioDict[n];
                double jieguo;            if (n == 1)
                {
                    jieguo = 0;            }
                else
                {
                    jieguo = Io_function(n - 1) * 2 + Vo_function(n - 1) * 3 + 3;
                }
                ioDict.Add(n, jieguo);
                return jieguo;
            }
      

  2.   


    这叫做“数据缓存”。可以使用 System.Web.Cacheing.Cache 类来实现数据缓存管理机制。
      

  3.   

    虽说没看代码,看到了
    Dictionary 应该可以满足你需求,动态规划哦。