又要麻烦各位了,正在学习《C# 入门经典(第4版)》中的C#委托,但是书中的一个例子我却无法编译class Program
    {
        delegate double ProcessDelegate(double param1, double param2);
        static double Multiply(double param1, double param2)
        {
            return param1 * param2;
        }
        static double Divide(double param1, double param2)
        {
            return param1 / param2;
        }
        static void Main(string[] args)
        {
            ProcessDelegate process;
            Console.WriteLine("Enter 2 numbers separated with a comma:");
            string input = Console.ReadLine();
            int commaPos = input.IndexOf(',');
            double param1 = Convert.ToDouble(input.Substring(0, commaPos));
            double param2 = Convert.ToDouble(input.Substring(commaPos + 1, input.Length - commaPos - 1));
            Console.WriteLine("Enter M to multiply or D to divide;");
            input = Console.ReadLine();
            if (input == "M")
                process = new ProcessDelegate(Multiply);
            Console.WriteLine("Result: {0}", process(param1, param2));
            Console.ReadKey();
        }
    }
编译的错误,提示我“使用了未赋值的局部变量“process”“
请问各位这是什么原因,书中并未写到委托之后需要赋值。

解决方案 »

  1.   

       process = new ProcessDelegate(Multiply);
     这句可能没执行到吧
      

  2.   

     if (input == "M")
     外面 执行不到
      

  3.   

    ProcessDelegate process= new ProcessDelegate(Multiply); 
    ProcessDelegate process= new ProcessDelegate(Divide); 
      

  4.   

    我知道原因了,原来是代码中的一部分有问题if (input == "M")
                    process = new ProcessDelegate(Multiply);
                else
                    process = new ProcessDelegate(Divide);
    替换上面的if字段就ok了
    谢谢楼上各位的提醒。