可以说我有下面的代码。直接分配行为和订阅事件有什么区别?分配动作之间的区别<T>方法和订阅动作<T>事件
//Action directly assigned
public class ClassA
{
public Action<string> OnAdd;
private void SomethingHappened()
{
OnAdd("It Happened");
}
}
public class ClassB
{
public ClassB()
{
var myClass = new ClassA();
myClass.OnAdd = Add;
}
private void Add(string Input)
{
//do something
}
}
//Event handlers
public class ClassA
{
public event Action<string> OnAdd;
private void SomethingHappened()
{
if (OnAdd != null)
OnAdd("It Happened"); //Should it be OnAdd.Invoke("It Happened") ???????
}
}
public class ClassB
{
public ClassB()
{
var myClass = new ClassA();
myClass.OnAdd += Add;
}
private void Add(string Input)
{
//do something
}
}
通常情况下,您将使用EventArgs创建事件,而不是使用Action。 –
2012-02-13 10:35:06
@SoMoS即使它只是一个字符串或int越过? – Jon 2012-02-13 10:39:06
@jon此行'myClass.Add = myClass.OnAdd;'无效......'.Add'反驳什么? – 2012-02-13 10:56:04