当前位置:首页>正文

c# 委托实例 求助 c#委托!!!

2023-04-21 21:14:27 互联网 未知

c# 委托实例 求助

从这个问题中看不出来委托prn 相当于console.writeline()
public delegate int PrintMessageHandler(string message)
这是定义了一个委托
这个方法 static void PrintTitle(PrintMessageHandler prn)
{
prn("=============================")
prn(" xyz银行 ")
prn("=========================")
}
中使用委托作为参数,并在方法中调用了委托指向的方法。
只有加上下面的代码:
pubulic int Method(string message)
{
Console.writeline(message)
return 0
}
并调用PrintTitle方法,如下:
PrintMessageHandler prh=new PrintMessageHandler (Method)//这个代码将委托和方法关联,此时委托prh相当于方法Method,而该方法实现的功能就是Console.writeline()
PrintTitle(prh)//这回是把prh作为参数传过来了。

c#委托!!!

不要按书抄写
要用自己的想法实现。
真不行再单步调试,什么问题都可以解决
把main给你注释了下,希望对你有用
static void Main(string[] args)
{
VCDstore.VCDDB VCDDB = new VCDstore.VCDDB()//开辟了一个vcd存储集,元素个数为0
AddVCDs(VCDDB)//为VCDDB对象提供4个元素
Console.WriteLine("DVD的标题是")
VCDDB.ProcessdvdVCDs(PrintTitle)//传递PrintTitle,实现打印名字
//为委托瞄准函数,VCDDB的ProcessdvdVCDs接受一个委托
//(是不是和函数指针感觉一样)
//这种写法在线程传递中很常见的
//对初学者并不是特别易懂,函数嵌套了几层,委托在哪都看不着了是吧。。。
PriceTotaller totaller = new PriceTotaller()
VCDDB.ProcessdvdVCDs(totaller.AddVCDToTotal)//传递一个类对象的函数,实现对应的功能
Console.WriteLine(totaller.AveragePrice())

Console.WriteLine(totaller.AveragePrice()) }

委托和事件要理解好,事件是一种特殊的委托,他是封装好的委托,一个sender一个ojbect
比如用户使用ui控件click的时候,就触发了一个事件(委托),看似是用户触发的,实际上是程序预期执行的委托。
而自定义的委托就比如你这个例子,以及多线程
多播委托的话可以看看送牛奶报纸
这些可能都太抽象,说个实际的点的:排名系统,一个人的积分从第2升到第1了,这时会有一个
触发的函数,而对应对象(一般为具备该函数参数匹配的委托对应的类)触发其委托,去执行更新数据库排名
C#高效率开发必须掌握委托,希望你尽快搞定这一个C#难点。