匿名方法就是委托

当对2个数实现加减乘除,其中的一个解决方案是通过委托来实现。如下:

    class Program
    {
        private delegate int CaculateDel(int num1, int num2);
        static void Main(string[] args)
        {
            CaculateDel caculateDel = Add;
            Console.WriteLine(caculateDel.Invoke(1,2).ToString());
            Console.ReadKey();
        }

        static int Add(int num1, int num2)
        {
            return num1 + num2;
        }
    }

以上,把Add方法赋值给了CaculateDel类型的委托变量。

如果用匿名方法来实现,就是:

    class Program
    {
        private delegate int CaculateDel(int num1, int num2);
        static void Main(string[] args)
        {
            CaculateDel caculateDel = delegate(int num1, int num2)
            {
                return num1 + num2;
            };
            Console.WriteLine(caculateDel.Invoke(1,2).ToString());
            Console.ReadKey();
        }
    }   

可见,匿名方法就是委托,使用匿名方法有了更好的灵活性,不需要事先把方法写"死"。

如果我们使用System.Diagnostics的Stopwatch的实例方法Reset、Start、Stop等来重置、开始、结束Stopwatch,用Stopwatch的ElapsedTickes属性来显示时间,我们可以发现匿名方法的效率比较高。

匿名方法就是委托

时间: 2024-10-10 10:25:06

匿名方法就是委托的相关文章

linq和匿名方法、委托、匿名委托、lambda

委托相当于JavaScript中的闭包,c++中的函数指针. c#为了引进这个函数指针,将其进行包装成“委托”,同时将非托管的变成托管的. 1.最初的委托该怎么用 弊端:写的代码量过多,还要写一个显示的方法(Run). 2.匿名委托 直接将方法体赋予委托实例. 3.lambda表达式 s是参数,只有一个参数时可省略小括号:方法体只有一句时,可以省略大括号. 4.还能继续优化吗 原文地址:https://www.cnblogs.com/1016391912pm/p/11978800.html

委托学习笔记后续:泛型委托及委托中所涉及到匿名方法、Lambda表达式

引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录下来,以备复习使用. 委托: 日常工作中,常常见到委托用在具体的项目中.而且委托使用起来相对来说也是非常简单的,下面列举一个委托实例用以说明如何使用委托,代码如下: class Program { public delegate int CalculateDelegate(int x, int y)

[C#] C# 基础回顾 - 匿名方法

C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ≥ C# 3.0 的版本中,我们会用 Lambda 表达式进行取代匿名方法,并且用 Lambda 表达式作为编写内联代码的首选方式,因为它更简洁. 匿名方法是,顾名思义,匿名方法就是没有名称的方法.匿名方法最明显的好处就是:可以降低额外另写一个方法的工作量:另外一个好处就是可以直接访问调用者的变量,

C#学习笔记三: C#2.0泛型 可控类型 匿名方法和迭代器

前言 C#1.0的委托特性使方法作为其他方法的参数来传递,而C#2.0 中提出的泛型特性则使类型可以被参数化,从而不必再为不同的类型提供特殊版本的实现方法.另外C#2.0还提出了可空类型,匿名方法和迭代器3个优美的特性. 1,泛型1.1 泛型是什么泛型的英文表述是"generic", 这个单词意为通用的.从字面意思可知,泛型代表的就是"通用类型",它可以代替任意的数据类型,使类型参数化,从而达到之实现一个方法就可以操作多种数据类型的目的.泛型是将方法实现行为与方法操

.NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法

开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以,跟着本篇的步伐,继续来围观. /* 新语法索引 */ 1.自动属性 Auto-Implemented Properties 2.隐式类型 var 3.参数默认值 和 命名参数 4.对象初始化器 与 集合初始化器 { } 5.匿名类 & 匿名方法 6.扩展方法 7.系统内置委托 Func / Acti

47. C# -- 匿名方法

C# 匿名方法 理论: 我们已经提到过,委托是用于引用与其具有相同标签的方法.换句话说,您可以使用委托对象调用可由委托引用的方法. 匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术. 匿名方法是没有名称只有主体的方法. 在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的. 编写匿名方法的语法 匿名方法是通过使用 delegate 关键字创建委托实例来声明的.例如: del.. 编写匿名方法的语法 匿名方法是通过使用 delegat

匿名类、匿名方法、扩展方法

/* 新语法索引 */ 1.自动属性 Auto-Implemented Properties 2.隐式类型 var 3.参数默认值 和 命名参数 4.对象初始化器 与 集合初始化器 { } 5.匿名类 & 匿名方法 6.扩展方法 7.系统内置委托 Func / Action 8.Lambda表达式 9.标准查询运算符 Standard Query Operator 10.LINQ查询表达式 一.匿名类 1.1 不好意思,我匿了 在开发中,我们有时会像下面的代码一样声明一个匿名类:可以看出,在匿名

C# 2.0 中的新增功能03 匿名方法

连载目录    [已更新最新开发文章,点击查看详细] 在 2.0 之前的 C# 版本中,声明委托的唯一方式是使用命名方法. C# 2.0 引入匿名方法,在 C# 3.0 及更高版本中,Lambda 表达式取代匿名方法作为编写内联代码的首选方式. 但是,本主题中有关匿名方法的信息也适用于 Lambda 表达式. 在有一种情况下,匿名方法提供 Lambda 表达式中没有的功能. 使用匿名方法可省略参数列表. 这意味着匿名方法可转换为具有多种签名的委托. Lambda 表达式无法实现这一点. 有关 L

.net基础扫盲-小例子串委托、匿名方法、lamuda表达式

我把委托理解为:委托是一种方法的格式,当然他也是一种类型. 只要是方法的格式跟委托定义的格式是一样的,那么就可以把该方法附加给该委托.看以下demo 声明委托: <p style="margin:0in;font-family:微软雅黑;font-size:12.0pt"></p><pre name="code" class="csharp">public delegate void Add(int a,int