分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

.Net深入体验与实践第一章

发布时间:2023-09-06 01:09责任编辑:傅花花关键词:暂无标签

什么是委托?委托和事件是什么关系?

什么事反射?

C#中的多个类基础?如何实现多重继承

什么事密封类?

using 关键字的几种用途?

#waring和#error分别的用途是什么?

Asp.Net web应用程序和Asp.NET网站的区别是什么?

什么事委托?

咱家:在c/c++中使用过函数指针和类成员函数指针,所谓的函数指针和类成员函数指针,都是声明一种与函数指针或者类成员函数参数相同将其的名称挖掉,在用这个声明去接受这个这个函数,或者类成员函数,这个这个声明就存储了他的地址,就可以通过这个声明从而来操作这个函数;

为了方便识别咱家用c举了一个例子:

int chu(int a,int b)
{
???return a/b;
}
void main()
{
int (*p)(int a,int b)=cheng;   //存储函数指针的地址
printf("%d",p(1,3));             
system("pause");
}

或许有些同志想说明明c#你玩什么C?

一、我只想说在我的理解中c#的委托像操作变量一样来操作函数,所以与c的相识,下面我们进入“正题”定义一个委托

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

namespace 委托
{
???//声明委托类型
???public delegate void SayDelegate(string name);                  //定义一个函数类型的委托
???class ClassPeople
???{
???????public void SayA(string name)
???????{
???????????Console.WriteLine("你好,{0}",name);
???????}
???????public void SayB(string name)
???????{
???????????Console.WriteLine("Hello,{0}",name);
???????}

???????                              //注意此方法,他接受一个SayDelegate类型的方法做为参数
???????public void DoWork(string name,SayDelegate MakeSay)
???????{
???????????MakeSay(name);                                                                           //通过这个变量来操作函数
???????}
???}
???class Program
???{
???????static void Main(string[] args)
???????{
???????????ClassPeople p = new ClassPeople();
???????????p.DoWork("小李子", p.A);
???????????p.DoWork("XiaoLiZhi", p.B);

Console.ReadLine();

???????}
???}
}

多播委托可以将多个相同的函数类型的赋值给一个委托,或者将多个方法帮定到一个委托,这就是多播委托

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

namespace 委托
{
???//声明委托类型
???public delegate void SayDelegate(string name);
???class ClassPeople
???{
???????public void A(string name)
???????{
???????????Console.WriteLine("你好,{0}",name);
???????}
???????public void B(string name)
???????{
???????????Console.WriteLine("Hello,{0}",name);
???????}

???????//注意此方法,他接受一个SayDelegate类型的方法做为参数
???????public void DoWork(string name,SayDelegate MakeSay)
???????{
???????????MakeSay(name);
???????}
???}
???class Program
???{
???????static void Main(string[] args)
???????{
???????????ClassPeople p = new ClassPeople();
???????????p.DoWork("小李子", p.A);
???????????p.DoWork("XiaoLiZhi", p.B);
???????????//多播委托可以将多个相同类型的赋值给一个委托,或者将多个方法帮定到一个委托,这就是多播委托
???????????SayDelegate delegate1 = p.A;     
???????????delegate1 += p.B;                                                                         //将多个相同类型赋值到一个委托中
???????????p.DoWork("XiaoLiZhi",delegate1);
???????????Console.ReadLine();
???????}
???}
}

.Net深入体验与实践第一章

原文地址:http://www.cnblogs.com/XiaoGuanYu/p/7495360.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved