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

推荐订阅源

P
Proofpoint News Feed
博客园 - 聂微东
Application and Cybersecurity Blog
Application and Cybersecurity Blog
MyScale Blog
MyScale Blog
罗磊的独立博客
H
Help Net Security
L
LangChain Blog
T
Threat Research - Cisco Blogs
量子位
S
Securelist
Last Week in AI
Last Week in AI
L
Lohrmann on Cybersecurity
T
The Exploit Database - CXSecurity.com
P
Privacy International News Feed
The Hacker News
The Hacker News
Vercel News
Vercel News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Blog of Author Tim Ferriss
T
Threatpost
Security Latest
Security Latest
P
Palo Alto Networks Blog
Microsoft Security Blog
Microsoft Security Blog
NISL@THU
NISL@THU
F
Full Disclosure
WordPress大学
WordPress大学
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Heimdal Security Blog
J
Java Code Geeks
Recorded Future
Recorded Future
Hugging Face - Blog
Hugging Face - Blog
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
阮一峰的网络日志
阮一峰的网络日志
U
Unit 42
B
Blog RSS Feed
月光博客
月光博客
C
Cisco Blogs
V
Visual Studio Blog
D
DataBreaches.Net
H
Hacker News: Front Page
博客园 - 叶小钗
N
News and Events Feed by Topic
爱范儿
爱范儿
A
Arctic Wolf

博客园 - 数迹

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();
        }
    }
}