C#【高级篇】 C# 匿名方法【待补充Lambda表达式。。。】
2023-09-11 14:15:48 时间
前言
我们已经提到过,委托是用于引用与其具有相同标签的方法。换句话说,您可以使用委托对象调用可由委托引用的方法。
匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。
在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。
编写匿名方法的语法
匿名方法是通过使用 delegate 关键字创建委托实例来声明的。例如:
delegate void NumberChanger(int n);
...
NumberChanger nc = delegate(int x)
{
Console.WriteLine("Anonymous Method: {0}", x);
};
代码块 Console.WriteLine(“Anonymous Method: {0}”, x); 是匿名方法的主体。
委托可以通过匿名方法调用,也可以通过命名方法调用,即,通过向委托对象传递方法参数。
注意: 匿名方法的主体后面需要一个 ;。
例如:
nc(10);
实例
下面的实例演示了匿名方法的概念:
using System;
delegate void NumberChanger(int n);
namespace DelegateAppl
{
class TestDelegate
{
static int num = 10;
public static void AddNum(int p)
{
num += p;
Console.WriteLine("Named Method: {0}", num);
}
public static void MultNum(int q)
{
num *= q;
Console.WriteLine("Named Method: {0}", num);
}
static void Main(string[] args)
{
//【01】使用匿名方法创建委托实例
NumberChanger nc = delegate (int x)
{
Console.WriteLine("Anonymous Method: {0}", x);
};
// 【01】使用委托调用匿名方法
nc(10);
// 【02】使用命名方法实例化委托
nc = new NumberChanger(AddNum);
// 【02】使用委托调用命名方法
nc(5);
// 【03】使用另一个命名方法实例化委托
nc = new NumberChanger(MultNum);
// 【03】使用委托调用命名方法
nc(2);
Console.ReadKey();
}
}
}
运行结果:
Anonymous Method: 10
Named Method: 15
Named Method: 30
总结
- 关于匿名方法:实际中会使用,并能理解别人写的代码即可。
相关文章
- C#多线程编程之:集合类中Synchronized方法与SyncRoot属性原理分析
- C#实现GDI+基本图的缩放、拖拽、移动
- c# 扩展方法奇思妙用集锦
- 挖一挖C#中那些我们不常用的东西之系列(2)——IsXXX 系列方法
- C#.NET常见问题(FAQ)-索引器indexer有什么用
- C#.NET常见问题(FAQ)-如何让文本框textbox内容靠右显示
- C# Winform 学习(四)
- C# 直接调用非托管代码的方法
- c# 优化代码的一些规则——优先隐式类型[一]
- C# DataSet.Clear 方法
- C# where泛型约束
- C# 参数带this是什么意思(扩展方法)
- atitit.判断时间重叠方法总结 java c++ c#.net js php
- (五十七)c#Winform自定义控件-传送带(工业)-HZHControls
- C# DataTable的詳細使用方法
- C# CheckedListBox控件的使用方法
- C# ORM—Entity Framework 之Code first(代码优先)(二)
- C# winform窗体程序-带历史信息的菜单
- (37)C#里为什么会出现$符号?
- C# 获得文件的执行路径的方法
- [C#]c#中数据的同步加锁机制 的几种方法
- C#习题六
- C# 删除chart控件网格:两种方法