C#匿名参数(转载too)
匿名方法是在初始化委托时内联声明的方法。
例如下面这两个例子:
不使用匿名方法的委托:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication7
{
class Program
{
public static int add(int x)
{
return x + 20;
}
delegate int otherdel(int param);
public static void Main()
{
otherdel del = add; Console.WriteLine("{0}", del(20));
Console.WriteLine("{0}", del(10));
}
}
}

使用匿名方法的委托:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication7
{
class Program
{
delegate int otherdel(int param);
public static void Main()
{
otherdel del = delegate(int x)
{
return x + 20;
}; Console.WriteLine("{0}", del(20));
Console.WriteLine("{0}", del(10));
}
}
}

两种结果是一样的。
使用匿名方法
1)声明委托变量时候作为初始化表达式。
2)组合委托时在赋值语句的右边。
3)为委托增加事件时在赋值语句的右边。
匿名方法语法
delegate (parameters ){implementationcode};
关键字 参数 语句块
匿名方法不会声明返回值类型。但是匿名方法返回值类型必须和委托返回值一样。
参数:参数数量,类型和修饰符必须和委托一样。
但是我们可以使圆括号为空,或省略圆括号来简化匿名方法的参数列表。但是仅在下面两项都为真的情况下才可以这么做。
1,委托的参数列表不包含任何out参数的委托。
2,匿名方法不使用任何参数。
例如下面:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication7
{
class Program
{
delegate int otherdel(int param);
public static void Main()
{
otherdel del = delegate
{
cleanup();
printMessage();
};
}
}
}

params参数:
如果委托参数包含params参数,那么params关键字就会被匿名方法的参数列表忽略。如下:
delegate int otherdel(int x,params int y);
otherdel del = delegate(int x,int y)
{
-------------
};
C#匿名参数(转载too)的更多相关文章
- python学习道路(day4note)(函数,形参实参位置参数匿名参数,匿名函数,高阶函数,镶嵌函数)
1.函数 2种编程方法 关键词面向对象:华山派 --->> 类----->class面向过程:少林派 -->> 过程--->def 函数式编程:逍遥派 --> ...
- js 自执行匿名函数(转载)
自执行匿名函数: 常见格式:(function() { /* code */ })(); 解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命 ...
- Python 匿名参数
#-*- coding:utf-8 -*- #匿名函数 #匿名函数语法格式 ''' 变量 = lambda 参数列表:表达式 ''' func = lambda x,y:x+y a = func(2, ...
- pandas.read_csv()参数(转载)
文章转载地址 pandas.read_csv参数整理 读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见:http://pandas.pydata.org/p ...
- C#微信json结构接收参数 转载
http://blog.csdn.net/u010773333/article/details/48524155 发素材的时间要上传资源故此要用json格式数据,需要转化. 微信服务器交互基本上都是j ...
- JSON.stringify的三个参数(转载)
前段时间勾股有提到stringify是支持三个参数,刷新的了我的认知,后来查到文档才发现还真的是支持三个参数的. 参考资料: stringify stringify方法顾名思义,就是把JSON序列换, ...
- 如何用node命令和webpack命令传递参数 转载
1. 比如在项目中我们的publicPath需要根据服务器环境的变化而变化,这时我们会写一个配置文件,在webpack.config.js中读取,可以 如何才能 取到变量呢? 这里介绍一种方法: 如果 ...
- rpm命令参数(转载)
rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. 还不清楚具 ...
- -C++11可变模版参数(转载)
泛化之美--C++11可变模版参数的妙用 1概述 C++11的新特性--可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意 ...
随机推荐
- RAC日常维护命令
olsnodes -n 查看节点个数 crs_stat -t 查看RAC中各节点的资源状态 crs_stat -p 查看RAC的节点的配置 crsctl命令: 对于crsctl命 ...
- Web—11-手机端页面适配
流式布局: 就是百分比布局,非固定像素,内容向两侧填充,理解成流动的布局,成为流式布局 视觉窗口: viewport是移动端持有.这是一个虚拟的区域,承载网页的. 承载关系:浏览器—->view ...
- es6 入坑笔记(四)---异步处理
promise 用于js的异步处理 形式: 1.申明一个promise的对象 let p = new Promise(function(成功时的参数,失败时的参数){ if(....){ 成功时的参数 ...
- bootstrap世界探索1——山川河流(文字排版)
世界到底是什么?其实世界很简单,正所谓一花一世界,一树一菩提,世界就在我们身边.造物神是伟大的,在我看来无论是HTML,css,js都可以看作是一个世界,但是他们是构成宏观世界不可或缺的,正如IU框架 ...
- 偏前端-纯css,手写轮播-(焦点切换 和 自动轮播 只可选择一种,两者不可共存)
现在我们一般都是在网上找个轮播插件,各种功能应有尽有,是吧!!~大家似乎已经生疏了手写是什么感觉.万一哪天想不起来,人家要手写,就尴尬了!~~跟我一起复习一下吧 不多说:效果图看一下: 高度不能是固定 ...
- TinyMCE插件:RESPONSIVE filemanager 9 安装与配置
RESPONSIVE filemanager 功能: 文件上传 文件下载 重命名文件 删除文件 新建文件夹 为每个用户创建子目录 上传文件效果图: 浏览文件效果图: 文件说明: filemanager ...
- [示例] Firemonkey TreeView 父项勾选子项连动
效果: 代码: procedure TForm1.TreeView1ChangeCheck(Sender: TObject); var i: Integer; t: TTreeViewItem; be ...
- day1-exercise
""" Day1 作业 Isabelle/刘佳赐 October 22, 2018 """ """ 1. 变量 ...
- Wtrofms
一.安装 安装:pip3 install wtforms 二.使用1(登录) from flask import Flask, render_template, request, redirect f ...
- mysql5.6搭建主从复制
使用MySQL 5.6,搭建主从复制.关于5.6的安装,可以参考<MySQL 5.6 rpm安装方法和碰见的问题>. 主库创建slave用户,设置复制权限, mysql> cre ...