C#之lambda(匿名)函数
来源:互联网 发布:淘宝类目分析竞争 编辑:程序博客网 时间:2024/06/05 17:54
随着对C#的深入使用,愈发得感觉其不仅与Java像一个模子里刻出来的,随着版本的更新,其更是与C++的一些特性相似,不过回头一想,编程本质也就是那些东西,换了一种语言,自然要换一种体现方式,不然谷歌那几行代码也不会值几个亿了。下面记录一下自己对C#的lambda函数的理解和C++的lambda函数的区别。
1.匿名函数,顾名思义就是没有名字的函数,但是一个函数若想履行自己的职责,必然要有返回值,参数,函数体这三个必要元素。(当然,具体到使用的场景,会有些部分为空)
1>一个简单的C#的lambda函数。
namespace CSharpTest{ class Program { delegate int del(int i); static void Main(string[] args) { del myDelegate = x => { Console.WriteLine("the argument x = {0}",x); return x * x; }; Console.WriteLine("the return value of the function is {0}",myDelegate(20)); } }}注:该匿名函数有返回值,有函数体,有参数。(且当参数个数为1时,可以省略括号,与下面情况做对比)
2>还有一种情况也是日常经常用到的,就是没有函数体,只有返回值的情况。
namespace CSharpTest{ class Program { delegate bool del(); static void Main(string[] args) { bool isTom = false; del function = () => isTom == false; Console.WriteLine(function()); } }}注:delegate相当于C++里面的模板函数,即关键字function,可以参考其它资料了解delegate和function。
2.相对于C++和C#的匿名函数的区别,我倒认为是这两种语言的区别。为什么这么说呢,指针,还是指针。C++作为可以操纵内存的语言,在指针的使用上,须是相当小心。指针在使用时,会区分深拷贝还是浅拷贝,是传值还是传递指针,所以在匿名函数这方面,C++的lambda的复杂程度要比C#高一些,下面看一下C++版的lambda函数。
1>一个简单的匿名函数。
int _tmain(int argc, _TCHAR* argv[]){std::function<void(int)> lambdamethod = [](int i){std::cout << "the arguments is " << i << endl; };lambdamethod(10);return 0;}注:需导入头文件functional,因为使用了std::function。
以上这个代码片段简单地实现了没有返回值有一个int型参数和有函数体的一个lambda函数,从上我们可以看到,和C#版本的是指没有本质区别,若想深入了解,请查阅其他资料。
0 0
- C#之lambda(匿名)函数
- C#匿名函数之匿名方法与lambda表达式
- 匿名函数(lambda)
- C#语法之匿名函数和Lambda表达式
- C#语法之匿名函数和Lambda表达式
- 匿名函数之lambda表达式
- python之匿名函数lambda
- Lambda 函数 (匿名函数)
- C++11 新特性之Lambda函数(匿名函数)
- C# 委托 事件 匿名函数 Lambda表达式
- C#编程指南 匿名函数 lambda表达式
- Python 匿名(lambda)函数
- c#之委托、匿名方法、Lambda表达式
- c#匿名类与匿名函数、lambda表达式
- Python匿名函数之lambda表达式
- python学习之匿名函数lambda
- 【C#】之匿名函数及Lambda表达式
- [Java]“语法糖”系列(二)之Lambda表达式/匿名函数(Lambda Expression)
- jz2440 nand flash
- 关于 Java 数组的 12 个最佳方法
- 二维haar小波分解与重构的matlab实现
- 1036. 跟奥巴马一起编程(15)
- 留的一些坑(有空和有能力时填掉)
- C#之lambda(匿名)函数
- linux shell数据重定向(输入重定向与输出重定向)详细分析
- iOS开发的前端之路
- 汉诺伊塔 的Python基本实现
- C++ split() 函数
- vector 使用
- C#5.0特性之 async异步方法
- Python如何判断<type 'NoneType'>数据类型
- 数码管的消影