相关疑难解决方法(0)

101
推荐指数
8
解决办法
4万
查看次数

代表们的目的

重复:

事件和代表之间的差异及其各自的应用程序

代表们有哪些优势?

我在哪里使用代表?

我想知道代表们的目的是什么.我没有那么多地使用它们,也不能真正想到什么.

在我的课程中,有人写道,代表是符合其签名的所有方法的蓝图.

此外,您可以向一个委托添加多个方法,然后按照添加顺序在彼此之后执行它们.这可能仅对影响局部变量的方法或不返回任何值的方法有用.

我已经读过C#将Events实现为委托,记录为:

//Summary: Represents the method that
will handle an event that has no event
data.

//Parameters:

//sender: The source of the event.

//e: An System.EventArgs that contains no event data.

[Serializable]

[ComVisible(true)] 

public delegate void EventHandler(object sender, EventArgs e);
Run Code Online (Sandbox Code Playgroud)

不过,这有点令人困惑.有人可以给出这个概念的一个好的,有用的例子吗?

.net c# delegates

21
推荐指数
2
解决办法
2万
查看次数

代表不仅仅是速记界面吗?

假设我们有:

interface Foo 
{
 bool Func(int x);
}

class Bar: Foo
{
  bool Func(int x)
  {
   return (x>0);
  }  
}

class Baz: Foo
{
  bool Func(int x)
  {
   return (x<0);
  }  
}
Run Code Online (Sandbox Code Playgroud)

现在我们可以将Bar和Baz作为Foos折腾并调用他们的Func方法.

代表们对此进行了简化:

delegate bool Foo(int x);

bool Bar(int x)
{
 return (x<0);
}

bool Baz(int x)
{
 return (x>0);
}
Run Code Online (Sandbox Code Playgroud)

现在我们可以作为Foo代表折腾Bar和Baz.

除了获得更短的代码之外,代表们的真正好处是什么?

c# delegates interface

10
推荐指数
2
解决办法
2031
查看次数

使用代表的好处?

我想在VB.NET或C#或其他一些.NET语言中实现Observer模式.我听说代理可以用于此,但无法弄清楚为什么它们比观察者实现的普通旧接口更受欢迎.所以,

  • 为什么我应该使用委托而不是定义我自己的接口并传递对实现它们的对象的引用?
  • 为什么我要避免使用委托,并使用良好的ol-fashioned接口?

.net delegates design-patterns

7
推荐指数
5
解决办法
1万
查看次数

事件和代表与调用方法

我希望这个问题不与其他问题密切相关,但其他问题似乎并没有填补知识空白.

这似乎是尝试和理解事件和代表的热门话题,在阅读了许多SO问题和MSDN文章后,我不敢说我​​仍然不明白.经过几年创建出色的Web应用程序,我发现自己因不理解它们而感到非常沮丧.请允许任何人在通用代码中澄清这一点.所以问题是,为什么你会使用事件和委托来调用方法?

下面是我在工作中编写的一些基本代码.我可以利用活动和代表吗?

Public Class Email
{
   public string To {get;set;}
   //Omitted code

   public void Send()
   {
    //Omitted code that sends.
   }
}

Public Class SomeClass
{
   //Some props

   Public void DoWork()
  {
    //Code that does some magic

    //Now Send Email
    Email newEmail = new Email();
    newEmail.To = "me@me.com";
    newEmail.Send();
  }
}
Run Code Online (Sandbox Code Playgroud)

这可能不是最好的例子,但无论如何DoWork()方法可以订阅电子邮件吗?这会有用吗?任何有助于我真正理解事件和代表的帮助将不胜感激.

问候,

c#

4
推荐指数
1
解决办法
2490
查看次数

标签 统计

c# ×4

delegates ×4

.net ×3

design-patterns ×1

interface ×1