什么是一些真正的世界的地方,呼吁代表们?我很好奇是什么情况或模式都存在这种方法是最好的解决方案。没有代码必需的。

有帮助吗?

解决方案

委托是一名类型,定义了一种特定的方法。只是作为一类定义中规定了所有成员给予一种对象,它的定义,该代表提出的方法的签名的法定义。

基于这种发言,一位代表一个功能是指,它的定义是什么,功能看起来象。

一个很好的例子为一个现实世界的应用程序的一个委托的 .在例从链接,你将注意到 阵列。找到 需要列搜索和后谓词,以处理的标准是什么,以找到。在这种情况下,它通过一个方法ProductGT10这符合所谓的签名。

其他提示

正如在 "学习C#3.0:主基础C#3.0"

一般情况: 当一个国家元首的死亡,美国总统通常没有时间去参加葬礼 个人。相反,他派遣一个代表。这往往委托 副总统,但是有时的副总裁不可用的 总统必须发送给别人,如国务卿或 甚至第一夫人。他不想要"硬线"他的委托 当局一个单一的人;他有可能委托的这个责任 谁能够执行正确的国际协议。

总统定义在推进什么样的责任将被授权 (参加葬礼的),什么样的参数将会通过了(表示慰问 友好的话),并什么价值,他希望得到回(良好的会)。他然后 分配一个特定的人以受委派的责任 "运行"作为他担任主席的进展。

在编程方案: 你经常面对的情况下需要执行特定行动,但是你不知道 推进其方法,或者即使其对象,你会想要呼吁 来执行它。

例如: 一个按钮可能不知道其中的一个或多个对象需要得到通知。而不是线电按钮以一个特定的 对象,你会连接的按钮,一个代表然后解决 该委托一个特定的方法当程序执行。

一个常见用途的各位代表的通用名单是通过行动的代表(或其匿名的同等)创建一个线foreach操作:

myList.Foreach( i => i.DoSomething());

我还找到所谓代表非常有用的,在搜索或修剪一个清单:

myList.FindAll( i => i.Name == "Bob");    
myList.RemoveAll( i => i.Name == "Bob");

我知道你说过没有代码要求,但是我发现更容易表明其用处,通过代码。:)

结合的事件,事件处理程序通常是你首先介绍代表们...你甚至不知道你在用他们,因为代表被包裹在处理类。

如果你有兴趣看到如何在委托模式是用在现实世界的代码,可可在Mac OS X.可可是苹果的首选的UI的工具包,为编程在Mac OS X,和编码在目标C它的设计,以便每个用户界面组件的目的是要扩展通过国代表团,而不是继承或其他装置。

更多信息,我建议你检查出是什么苹果已经说关于与会代表 在这里,.

我有一个项目,该项目使用win32蟒蛇。

由于各种原因,某些模块用odbc.py 访问的数据库,以及其他模块的-pyodbc.py.

有一个问题,当有功能需要使用两种模块。它有一个连接的对象,通过它作为一个论点,但它必须知道是否使用数字.dbiDate或时间表示倍。

这是因为odbc.py 预计,作为价值在SQL陈述,日期为影.而dbiDate pyodbc.py 预期日期时间值。

一个进一步的并发症是连接创建的对象odbc.py 和pyodbc.py 不允许设置一个额外的领域。

我的解决方案是包连接的对象返回的odbc。odbc(...)和pyodbc.pyodbc(...)通过委托类,其中包含所需时间表示的功能价值的一个额外的领域,并且其代表的所有其他领域的要求的原始连接的对象。

我有同样的问题,你去了这个网站为一个答案。

显然,我没有理解它更好,即使我脱脂通过实例,在这个线程。

我发现一个伟大的使用对于代表现在,我读到: http://www.c-sharpcorner.com/UploadFile/thiagu304/passdata05172006234318PM/passdata.aspx

这可能看起来更显而易见的新的用户,因为形式更复杂的通过值比ASP.NET 网站与GET/POST(查询)..

基本上你义委托其需要 "文本 文本" 作为参数。

//Form1

// Class Property Definition
public delegate void delPassData(TextBox text);


// Click Handler
private void btnSend_Click(object sender, System.EventArgs e)
{
     Form2 frm= new Form2();
     delPassData del=new delPassData(frm.funData);
     del(this.textBox1);
     frm.Show();
}

//摘要:定义代表实例新的窗体2类,分配funData()功能来代表,在你的文本的代表。展示的形式。

//窗体2

public void passData(TextBox txtForm1)
{

     label1.Text = txtForm1.Text;
}

//摘要:简单地采取"文本框"txtForm1作参数(定义在你的委托)和分配标签的文本为文本的文本。

我希望这启发了一些用于代表们:)..

一个快速的谷歌搜索了这个 http://en.wikipedia.org/wiki/Delegation_pattern .基本上,任何时候,你使用对象将它转发的电话另一个对象然后你们委派.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top