C# 调用公共事件以在C中的另一个类中触发方法#
我想问一下这在C#中是否可能发生。到目前为止,我还没有太多的活动 假设我有一个a类订阅了一个表单的表单关闭事件:C# 调用公共事件以在C中的另一个类中触发方法#,c#,events,C#,Events,我想问一下这在C#中是否可能发生。到目前为止,我还没有太多的活动 假设我有一个a类订阅了一个表单的表单关闭事件: public class A { private void f_FormClosed(object sender, FormClosedEventArgs e) { //Now here a public Event should be called } } 现在我想举行一个公开活动。假设现在我有另一个B类,它有一个特定的方法 public class
public class A
{
private void f_FormClosed(object sender, FormClosedEventArgs e)
{
//Now here a public Event should be called
}
}
现在我想举行一个公开活动。假设现在我有另一个B类,它有一个特定的方法
public class B
{
public void DoSomething()
{
}
}
现在我想做的是:
表单被关闭,因此类A被通知。在那里,将触发一个公共事件(位于公共类中的某个位置)。我想将类B中的方法订阅到此事件,以便在发生此事件时调用它。这可能吗?语法如何?到现在为止我还没有找到有用的东西
编辑:我不能直接从类A创建类B的实例。这是可能的
f\u FormClosed
DoSomething
class EventListener
{
private ListWithChangedEvent List;
public EventListener(ListWithChangedEvent list)
{
List = list;
// Add "ListChanged" to the Changed event on "List".
//This is how we subscribe to the event created in ListWithChangedEvent class
List.Changed += new ChangedEventHandler(ListChanged);
}
// This will be called whenever the list changes.
private void ListChanged(object sender, EventArgs e)
{
Console.WriteLine("This is called when the event fires.");
}
}
这是可能的
f\u FormClosed
DoSomething
class EventListener
{
private ListWithChangedEvent List;
public EventListener(ListWithChangedEvent list)
{
List = list;
// Add "ListChanged" to the Changed event on "List".
//This is how we subscribe to the event created in ListWithChangedEvent class
List.Changed += new ChangedEventHandler(ListChanged);
}
// This will be called whenever the list changes.
private void ListChanged(object sender, EventArgs e)
{
Console.WriteLine("This is called when the event fires.");
}
}
我可以回答这个问题,但当你说你在网上没有找到有用的东西时,我觉得你是不现实的。事件自C#成立以来就一直存在,因此15多年来就有关于这个主题的文章。是的,我知道。我所发现的只是在类A中创建类B的实例时如何触发事件。我读了很多书,但仍然有问题。请帮帮我:/我真的相信你希望我们节省你的时间并得到一个总结。有很多关于事件的文章。只需使用谷歌搜索这些关键词:“c#events codeproject”,看看会发生什么……不。我试了很多次,最后我问了这里。我的问题是,我无法在类A中创建类B的实例。我试图创建一个公共委托,但最终我不知道如何正确地将类B的类订阅给该委托人,所以请向我们展示代码。我可以回答这个问题,但当你说你在网络上没有发现有用的东西时,我觉得你是不现实的。事件自C#成立以来就一直存在,因此15多年来就有关于这个主题的文章。是的,我知道。我所发现的只是在类A中创建类B的实例时如何触发事件。我读了很多书,但仍然有问题。请帮帮我:/我真的相信你希望我们节省你的时间并得到一个总结。有很多关于事件的文章。只需使用谷歌搜索这些关键词:“c#events codeproject”,看看会发生什么……不。我试了很多次,最后我问了这里。我的问题是,我无法在类A中创建类B的实例。我试图创建一个公共委托,但最终我不知道如何将类B的类正确订阅到此委托。请向我们展示代码。语法如何?我有一些问题需要解决。在这里检查这个例子@Conax查看如何订阅事件的编辑这不起作用,因为我无法在构造函数中将类A的实例传递给类B。类B的实例是由另一个类创建的。谁创建您的实例并不重要。您需要一个类A的实例来订阅它的事件。语法如何?我有一些问题需要解决。在这里检查这个例子@Conax查看如何订阅事件的编辑这不起作用,因为我无法在构造函数中将类A的实例传递给类B。类B的实例是由另一个类创建的。谁创建您的实例并不重要。您需要类A的实例来订阅其事件。