委托 delegate
来源:互联网 发布:mac excel solver 编辑:程序博客网 时间:2024/05/19 03:18
说到委托,两个要点就足够了:相同返回类型、相同参数列表
委托是一种存储函数引用的类型。
1.声明:委托的声明指定了一个返回类型和一个参数列表,他和函数声明的区别就在于不带函数体。
2.初始化委托变量:把委托变量初始化为与委托具有相同返回类型和参数列表的函数引用,之后就可以使用委托变量调用这个函数,就像该变量是一个函数一样。
我们可以把委托变量作为参数传递给一个函数,这样,该函数就可以使用委托 调用他引用的 任何函数。
delegate关键字指定该定义是用于委托的,接着指定double返回类型和两个double参数。委托名称是weituo
class Program
{delegate double weituo(double a, double b);//这一句是声明委托,我们发现,他的返回值类型与参数列表和后便给出的两个方法是一致的。
static void Main(string[] args)
{
weituo WT;//首先用委托类型声明一个变量
Console.WriteLine("请输入两个数,用\",\"隔开");
string input = Console.ReadLine();
int commapos = input.IndexOf(',');
double a = Convert.ToDouble(input.Substring(0, commapos));
double b = Convert.ToDouble(input.Substring(commapos + 1, input.Length - 1-commapos ));
Console.WriteLine("请输入要进行的计算");
string c=Console.ReadLine();
if (c == "M")
{
WT = new weituo(multiply);//把一个函数引用赋给委托变量
}
else
{
WT = new weituo(divide);
}
Console.WriteLine("{0}",WT (a,b));
Console.ReadKey();
}
/// <summary>
/// 乘法运算
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static double multiply(double a,double b)
{return a * b;
}
/// <summary>
/// 除法运算
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static double divide(double a, double b)
{return a / b;
}
}
- 委托(Delegate)
- 委托(Delegate)
- delegate委托
- 委托(delegate)
- Delegate 委托
- delegate 委托
- 委托:delegate
- 委托 delegate
- 委托(delegate)
- 委托,delegate
- delegate-委托
- 委托 delegate
- delegate委托
- Delegate委托
- 委托 delegate(System.Delegate)
- 委托(Delegate)
- 委托(Delegate)
- 委托(Delegate)
- 51Nod 1006 最长公共子序列Lcs(dp)
- 算法学习总结(1)——基本数据结构
- Android 5.1高通方案增加GPIO按键
- 关于一些基础的Java问题的解答(四)
- Java序列化与反序列化
- 委托 delegate
- win+l不能锁屏 win7
- popupwindow的使用注意点
- MSYQL中系统找不到指定的路径的解决方法
- 手机触屏版页面开发总结
- DBL_EPSILON和 FLT_EPSILON的用法
- android 题
- 转载一篇在扩展中声明类的文章
- IOS控件学习之UIScrollView(5)