C#观察者/观察者与代表的超简单例子 [英] Super-simple example of C# observer/observable with delegates
本文介绍了C#观察者/观察者与代表的超简单例子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我最近开始挖掘到C#中,但是我不知道如何在语言中实现观察者/可观察模式时代表如何工作。
可能有人给我一个超简单的例子,说明它是如何完成的?我发现这个例子是,但我发现的所有例子也是特别有问题的,也是太笨拙的。
解决方案
观察者模式通常通过事件实现。
这里有一个例子:
using System;
class Observable
{
public event EventHandler SomethingHappened;
public void DoSomething()
{
EventHandler handler = SomethingHappened;
if(handler!= null)
{
handler(this,EventArgs.Empty);
}
}
}
class Observer
{
public void HandleEvent(object sender,EventArgs args)
{
Console.WriteLine(发生了什么事+发件人);
}
}
class Test
{
static void Main()
{
可观察的observable = new Observable ;
Observer observer = new Observer();
observable.SomethingHappened + = observer.HandleEvent;
observable.DoSomething();
}
}
有关更多详细信息,请参阅链接的文章。 / p>
I recently started digging into C# but I can't by my life figure out how delegates work when implementing the observer/observable pattern in the language.
Could someone give me a super-simple example of how it is done? I have googled this, but all of the examples I found were either too problem-specific or too "bloated".
解决方案
The observer pattern is usually implemented with events.
Here's an example:
using System;
class Observable
{
public event EventHandler SomethingHappened;
public void DoSomething()
{
EventHandler handler = SomethingHappened;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
}
class Observer
{
public void HandleEvent(object sender, EventArgs args)
{
Console.WriteLine("Something happened to " + sender);
}
}
class Test
{
static void Main()
{
Observable observable = new Observable();
Observer observer = new Observer();
observable.SomethingHappened += observer.HandleEvent;
observable.DoSomething();
}
}
See the linked article for a lot more detail.
这篇关于C#观察者/观察者与代表的超简单例子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文