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();
}
}
}
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();
}
}
}
{
Console.WriteLine("请输入两个小数,用逗号分割");
string strInput = Console.ReadLine(); }
double dbNum1 = Convert.ToDouble(strInput.Substring(0,commaPos));
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
方法写复杂了,这样就可以分开了
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
//
Loop:
tempdb = cd(Console.ReadLine());这部分要这样。