惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
Security Latest
Security Latest
P
Privacy International News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AI
AI
Cisco Talos Blog
Cisco Talos Blog
K
Kaspersky official blog
S
Secure Thoughts
PCI Perspectives
PCI Perspectives
Simon Willison's Weblog
Simon Willison's Weblog
D
DataBreaches.Net
GbyAI
GbyAI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
罗磊的独立博客
V
Visual Studio Blog
aimingoo的专栏
aimingoo的专栏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
IT之家
IT之家
V
V2EX
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tenable Blog
T
Threat Research - Cisco Blogs
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
S
Security @ Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
Project Zero
Project Zero
The GitHub Blog
The GitHub Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
Lohrmann on Cybersecurity
F
Full Disclosure
H
Help Net Security
博客园 - Franky
Stack Overflow Blog
Stack Overflow Blog
N
Netflix TechBlog - Medium
Engineering at Meta
Engineering at Meta
A
Arctic Wolf
O
OpenAI News
S
Securelist

博客园 - 数迹

1.winform中App.config配置mssql连接字符串 where关键字 1.params 关键字 1.创建实体类UserInfo 1. UserInfo表的创建 3.SqlCommand组件 2.在DbHelper.cs 中使用连接字符串 事件委托1 多播委托 委托总结:委托提供了 A类的对象 调用 B类对象的同一类方法 的能力。 委托3--委托声明比较 委托2 文心快码 sql提示注册表中无 \100\ConfigurationState的解决方法 - 数迹 - 博客园 安装SQL server 提示重新启动计算机失败怎么解决 DataGridView插入指定类型的列 菜单制作过程笔记1 ${pagecontext.request.contextpath}绝对路径理解 eclipse中修改JSP模板中的默认编码 hibernate的ddl-auto属性
委托1
数迹 · 2026-02-10 · via 博客园 - 数迹

先看代码:

仅仅根据自己学习的情况做记录!!!

//先定义三个返回值相同,方法参数相同的三个方法
public int JiaFa(int x,int y){ return x+y; } public int JianFa(int x,int y){ return x-y; } public int YunSuan(int x,int y){ return x*x+y*x; } //定义代理类 代理类针对返回值为int 参数为(int x,int y)的同类方法 public delegate int JiSuan(int x,int y); JiSuan jiSuan1= new JiSuan(JiaFa); JiSuan jiSuan2 = new JiSuan(JianFa); JiSuan jiSuan3 = new JiSuan(YunSuan);

再看定义:

代理是一种引用类型的变量,用于存放某个方法的引用地址

分析:

  第一代理是变量

       第二存放地址    就是指针

从以上代码中 jiSuan1,jiSuan2,jiSuan3是变量,就是所谓的代理

因此倒推

JiSuan jiSuan1= new  JiSuan(JiaFa);
jiSuan1是代理,是地址,是变量
Jisuan是一种类,就是代理类
从代理类的定义格式来看:
public delegate int JiSuan(int x,int y);
--------------------------------------
代理 -- 类
delegate JiSuan
而且用输出和输入的形式对这代理类进行了规定
这个代理类指向的方法具有 输出为int 输入为满足int x,int y参数的形式

总结:
代理的用法:
先用delegate关键字 声明一个 代理类 这个代理类的形式和代理指向的方法具有同样的特点
用代理类调用带参构造,产生一个对象,这个参数就是指向或者说是调用的具体的方法。
千万注释:代理就是个变量,准确说是个指针;它是代理类产生的对象;这个代理类声明的时候以 输入类型 代理类名(参数列表)的形式进行声明
也就是代理 代理关键字 输入类型 代理类名(参数列表)的形式进行声明
delegate int Calcu (int x,int y);

image


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestConsoleFramwork
{
    internal class Program
    {
        //一、创建委托类
        public delegate int CalHandler(int x, int y);
        //二、创建具体的委托方法
        static int Jia(int x,int y) {
            return x + y;
        }
        static int Jian(int x, int y)
        {
            return x - y;
        }

        static void Main(string[] args)
        {
            //三、在方法内生成为方法的委托对象
            CalHandler JiaHandler = new CalHandler(Jia);
            CalHandler JianHandler = new CalHandler(Jian);
            //四、使用委托对象.Invoke方法执行具体的方法
            int a=JiaHandler.Invoke(3,4);
            int b=JianHandler.Invoke(5,6);
            Console.WriteLine(a);
            Console.WriteLine(b);
            //五、也可以使用,两种效果一样
            int c = JiaHandler(3,4);
            int d=JianHandler.Invoke(5,6);
            Console.WriteLine(c);
            Console.WriteLine(d);
            Console.Read();
        }
    }
}