码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-09-08 18:23:32      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:多重继承   类成员   函数   space   ++   ogr   print   linq   区别   

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

什么事反射?

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深入体验与实践第一章

标签:多重继承   类成员   函数   space   ++   ogr   print   linq   区别   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!