关于函数方面论文范文素材,与代理其编程方法相关毕业论文格式
本论文是一篇关于函数方面毕业论文格式,关于代理其编程方法相关毕业论文提纲范文。免费优秀的关于函数及方法及指针方面论文范文资料,适合函数论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
代理实例中含有一个调用链表,该链表将由多个代理实例组成,其中每个代理实例都封装一个相应的方法,也就是一个代理实例可以同时调用多个方法.代理实例通过_prev私有指针来连接多个代理构成的链表,私有指针_target和_methodPtr用于指向代理实例调用的实例和方法.有关论文范文主题研究: | 关于函数的论文范例 | 大学生适用: | 函授毕业论文、研究生毕业论文 |
---|---|---|---|
相关参考文献下载数量: | 63 | 写作解决问题: | 写作资料 |
毕业论文开题报告: | 文献综述、论文小结 | 职称论文适用: | 核心期刊、高级职称 |
所属大学生专业类别: | 写作资料 | 论文题目推荐度: | 最新题目 |
每创建一个新的代理实例时,指针_prev将被设置为null,表示链表中没有其它的代理实例.而当用户使用Combine方法(或+等于运算符)把另一个代理实例合并到该调用链表中时,则将先创建一个含有_target和_methodPtr值的新实例,然后把该实例的_prev设置为调用链表的头实例,即从调用链表的头插入新的实例.可以使用Remove方法(或-等于运算符)从一个调用链表中删除一个代理实例.
这篇论文转载于:http://www.sxsky.net/zhengzhi/050877044.html
3.3多重代理编程的实现
多重代理(或多播)具有创建方法链表的能力,当调用代理时,所有被链接的方法都会被自动调用,也就是多播可以在一次代理调用中调用方法链表上的所有方法.创建多播调用链表的方法是:先实例化一个代理,然后使用“+等于”运算符把方法添加到调用链表中;也可以使用“-等于”运算符从调用链表中删除一个方法.
下面程序说明了多重代理编程的实现方法.
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;namespaceConDelegatej2
{
delegatevoidStringDelegate(
refstringstr);//定义一个代理
classstringops//字符串操作类
{//定义三个字符串操作方法
staticvoidReplaceSpaces(refstrings)
{Console.WriteLine("用连字符替换
空格操作:");
s等于s.Replace('','_');
}
staticvoidRemoveSpaces(refstrings)
{stringtemp等于"";inti;
Console.WriteLine("删除空格操作:");
for(i等于0;i if(s[i]!等于'')temp+等于s[i]; s等于temp; } staticvoidReverse(refstrings) {stringtemp等于"";intj; Console.WriteLine("字符串反转操作:"); for(j等于s.Length-1;j>等于0;j--) temp+等于s[j]; s等于temp; } staticvoidMain(string[]args) {//创建一个代理 StringDelegatestrdelegate; StringDelegatereplacesp等于new StringDelegate(ReplaceSpaces); StringDelegateremoves等于new StringDelegate(RemoveSpaces); StringDelegatereversestr等于newStringDelegate(Reverse); stringstr等于"Iamastudent."; //代理指向一个函数 strdelegate等于replacesp; strdelegate+等于reversestr;//多播关联 strdelegate(refstr);//调用多播 Console.WriteLine("操作字符串的结果为:"+str); Console.WriteLine(); strdelegate-等于replacesp;//去除replacesp strdelegate+等于RemoveSpaces; str等于"你是一个计算机教师."; strdelegate(refstr); Console.WriteLine("字符串操作结果是:"+str); Console.WriteLine();Console.Read(); } } } 上述程序的运行结果如下所示. 4结束语 代理是C#语言提供动态调用函数的一种方法;多重代理解决了用一个代理一次调用多个方法的技术.不过代理的多播有一个限制:方法链表中的方法必须具有相同的参数,而且这些方法的返回值类型要是void类型. 代理也为用户程序利用属性驱动事件程序的编程提供了有力的方法. 参考文献 [1]唐大仕编著.C#程序设计教程[M].北京:清华大学出版社;北方交通大学出版社,2003. [2]邵鹏鸣编著.VisualC#程序设计基础教程[M].北京:清华大学出版社,2005. 关于函数方面论文范文素材,与代理其编程方法相关毕业论文格式参考文献资料: