C# 5 in a Nutshell - Delegate

简介: 1. What is delegate in C#? A delegate is an object that knows how to call a method.A delegate type defines the kind of method that delegate instances can call.

1. What is delegate in C#?

A delegate is an object that knows how to call a method.
A delegate type defines the kind of method that delegate instances can call. Specifically,
it defines the method’s return type and its parameter types.

The followingdefines a delegate type called Transformer:
delegate int Transformer (int x);

 Transformer is compatible with any method with an int return type and a single
int parameter, such as this:
static int Square (int x) { return x * x; }
Assigning a method to a delegate variable creates a delegate instance:
Transformer t = Square;

 

complete code:

public delegate int Transformer (int x);
class Util
{
    public static void Transform (int[] values, Transformer t)
    {
        for (int i = 0; i < values.Length; i++)
        values[i] = t (values[i]);
    }
}

class Test
{
    static void Main()
    {
        int[] values = { 1, 2, 3 };
        Util.Transform (values, Square); // Hook in the Square method
        foreach (int i in values)
        Console.Write (i + " "); // 1 4 9
    }
    static int Square (int x) { return x * x; }
}

 

目录
相关文章
|
Web App开发 Android开发 iOS开发
Flutter Web:获取设备信息、UA、窗口大小等
开启web支持 首先我们要为Flutter安装web环境,通过下面命令: flutter pub global activate webdev //安装web开发环境 然后为我们的Flutter项目开启web支持,通过下面的命令: flutter config --enable-web //启动支持web flutter config --enable-macos-desktop //启动mac支持 flutter config --enable-windows-desktop //启用window支持
1612 0
|
JSON 小程序 数据可视化
手把手带你开发一款云开发版点餐小程序,微信扫码点餐,用户端和后厨端都有
手把手带你开发一款云开发版点餐小程序,微信扫码点餐,用户端和后厨端都有
1110 0
|
11月前
|
运维 自然语言处理 Linux
OS Copilot 首次使用体验
OS Copilot是阿里云推出的一款基于大模型的Linux系统智能助手,支持自然语言问答、命令辅助执行和系统调优等功能。通过CHAT、CODEGEN、CODESUM三种模式,用户可以更高效地解决日常问题、生成代码及进行代码分析。安装简便,只需三步:申请云主机、创建权限角色、安装Copilot。新功能如-t、-f参数及管道操作简化了任务处理,极大提升了Linux系统的使用效率。对于开发者和运维人员来说,OS Copilot是一个强大的工具,尤其在国产操作系统上的应用前景广阔。
|
Go vr&ar 图形学
重塑体验:AR/VR技术在游戏与娱乐行业的创新应用
【10月更文挑战第29天】本文探讨了AR/VR技术如何改变游戏与娱乐行业,介绍了AR和VR的基本概念及其在游戏和娱乐中的应用实例,包括《精灵宝可梦GO》的AR开发和VR视频播放器的实现代码,并展望了未来的发展趋势。
826 2
|
存储 消息中间件 人工智能
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
早期 MiniMax 基于 Grafana Loki 构建了日志系统,在资源消耗、写入性能及系统稳定性上都面临巨大的挑战。为此 MiniMax 开始寻找全新的日志系统方案,并基于阿里云数据库 SelectDB 版内核 Apache Doris 升级了日志系统,新系统已接入 MiniMax 内部所有业务线日志数据,数据规模为 PB 级, 整体可用性达到 99.9% 以上,10 亿级日志数据的检索速度可实现秒级响应。
820 14
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
644 1
|
机器学习/深度学习 人工智能 算法
未来智能家居中的人工智能技术应用与挑战
在智能家居迅猛发展的今天,人工智能技术正成为其核心驱动力。本文探讨了人工智能在智能家居中的应用现状及面临的挑战,包括数据安全、用户隐私保护和技术集成等方面。
|
搜索推荐 程序员
IT圈的“鄙视链”:探讨技术领域的互相嫌弃文化
IT圈的“鄙视链”:探讨技术领域的互相嫌弃文化
|
网络协议 Linux Apache
如何查看Linux服务器中所有正在运行的进程服务?
有许多方法和工具可以查看 Linux 中所有正在运行的服务。大多数管理员会在 System V(SysV)初始化系统中使用
9281 1
|
Web App开发 人工智能 开发框架
玄铁RISC-V处理器入门与实战-无剑平台-无剑600 SoC平台
玄铁RISC-V处理器入门与实战-无剑平台
930 0