C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace DelegateDemo1
{
    class Program
    {
        delegate double processDelegate(double db1, double db2);
        static void AnonymousMethod(string strInput, double dbNum1, double dbNum2)
        {
            processDelegate process;
            if (strInput == "M")
              {  
                process = delegate(double db1,double db2)
                { 
                    return db1*db2;
                };
               }
            else
            {
                process = delegate(double db1, double db2)
                {
                    return db1 / db2;
                };
            }
            Console.WriteLine("结果为:{0}",process(dbNum1,dbNum2));
        }
        static void Main(string[] args)
        {
            Console.WriteLine("请输入两个小数,用逗号分割");
            string strInput = Console.ReadLine();
            int commaPos = strInput.IndexOf(',');
            double dbNum1 = Convert.ToDouble(strInput.Substring(0,commaPos));??长度不能小于零
            double dbNum2 = Convert.ToDouble(strInput.Substring(commaPos+1));
            Console.WriteLine("输入M表示乘法,或者D表示除法");
            strInput = (Console.ReadLine()).ToUpper();
            //使用匿名方法
            Console.WriteLine("使用匿名方法委托");
            Console.ReadLine();
        }
    }
}

解决方案 »

  1.   

    while (commaPos<=0)
    {
    Console.WriteLine("请输入两个小数,用逗号分割"); 
                string strInput = Console.ReadLine(); }
    double dbNum1 = Convert.ToDouble(strInput.Substring(0,commaPos));   
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  2.   

    string[] b = a.Split(',');
    方法写复杂了,这样就可以分开了
      

  3.   

    反正你是要用delegate,多写个熟悉熟悉。double? delegate DoubleCheckDel(string s);
    double? DoubleCheck(string s)
    {
    try
    {
       return double.parse(s);
    }
    catch
    {
       return null;
    }
    }double GetDouble(DoubleCheckDel cd)
    {
    double? tempdb = cd(Console.ReadLine());
    Loop:
    if(tempdb == null)
    {
       Console.WriteLine("您输入的不是数字,请重输");
       goto Loop;
    }return (double)tempdb;
    }main方法里面:DoubleCheckDel cd = new DoubleCheckDel(DoubleCheck);
    Console.WriteLine("请输入第一个小数");double db1 = GetDouble(cd);Console.WriteLine("请输入第二个小数");double db2 = GetDouble();//
    //else code
    //
      

  4.   

    double? tempdb ;
    Loop:
    tempdb = cd(Console.ReadLine());这部分要这样。