平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“C# 匿名做法的实现方法示例”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
在这个场景下,C# 匿名方法是一个“内联”语句或表达式,可在需委托类型的任何地方采用。 能够采用匿名函数来初始化命名委托,或传递命名委托作为方法参数。本文重点梳理C# 匿名方法。
1、C# 匿名方法的声明
落到代码里,能够采用 lambda 表达式或匿名方法来新建匿名函数。 建议采用 lambda 表达式,因为它们提供了更简洁和富有表现力的方式来编写内联代码。 与匿名方法不同,某些类型的 lambda 表达式能够转换为表达式树类型。匿名方法定义语法如下所示,
1)采用delegate 关键字新建委托实例来声明
delegate void MyDelegate(string s);
...
MyDelegate m = delegate(string x)
{
Console.WriteLine("匿名方法: {0}", x);
};
2)采用 lambda 表达式
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace cjavapy
{
delegate void MyDelegate(string s);
class Program
{
static void Main(string[] args)
{
//ExpressionmyET = x => x * x;
MyDelegate m = x=>Console.WriteLine("匿名方法: {0}", x);
Console.ReadKey();
}
}
}
————————————————
版权声明:本文为CSDN博主「A爱了个I」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fl1768317420/article/details/137703812
2、匿名方法的采用
实际处理时,在 C# 1.0 里,借助采用在代码中其他位置定义的方法显式初始化委托来新建委托的实例。 C# 2.0 引入了匿名方法的概念,作为一种编写可在委托调用中执行的未命名内联语句块的方式。 C# 3.0 引入了 lambda 表达式,这种表达式与匿名方法的概念类似,但更具表现力同时且更简练。 这两个功能统称为匿名函数。 通常,面向 .NET Framework 3.5 或更高版本的应用程序应采用 lambda 表达式。
比如,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace cjavapy
{
class Test
{
delegate void MyDelegate(string s);
static void MyMethod(string s)
{
Console.WriteLine(s);
}
static void Main(string[] args)
{
//原始委托语法
//使用指定方法初始化。
MyDelegate md1 = new MyDelegate(MyMethod);
// c# 2.0:一个委托可以被初始化
//内部代码,称为“匿名方法”。这
//方法以字符串作为输入参数。
MyDelegate md2 = delegate (string s) { Console.WriteLine(s); };
// c# 3.0。委托可以被初始化
//一个lambda表达式lambda也接受一个字符串
//作为输入参数(x)。x的类型由编译器推断。
MyDelegate md3 = (x) => { Console.WriteLine(x); };
// 调用委托。
md1("C#");
md2("Java");
md3("Python");
Console.ReadKey();
}
}
}
到此这篇关于C# 匿名方法的实现示例的文章就介绍到这了,更多相关C# 匿名方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
- C#匿名函数和匿名方法的采用
- C#中匿名方法与委托的关系介绍
- C# 匿名方法基础回顾
- C#实现在匿名方法中捕获外部变量的方法
- C#特性之匿名方法和Lambda表达式
- C#基础之匿名方法实例教程
- C#中的匿名方法实例解析
