C# 如何定义从委托继承的新类
有没有办法做一些类似我在贝娄所做的事情 我试图做的是在特定的时间点调用一个委托列表并跟踪它们,为了保持代码干净,在某种类型的列表中保留要调用的委托C# 如何定义从委托继承的新类,c#,inheritance,delegates,C#,Inheritance,Delegates,有没有办法做一些类似我在贝娄所做的事情 我试图做的是在特定的时间点调用一个委托列表并跟踪它们,为了保持代码干净,在某种类型的列表中保留要调用的委托 public interface IServiceStatusDelegate { object DynamicInvoke(object[] args) } public class ServiceStatusDelegate : Delegate, IServiceStatusDelegate { } public class
public interface IServiceStatusDelegate
{
object DynamicInvoke(object[] args)
}
public class ServiceStatusDelegate
: Delegate, IServiceStatusDelegate
{
}
public class MyServiceStatusCheckedDelegate
: ServiceStatusDelgate
{
}
public class MyServiceStatusChangedDelegate
: ServiceStatusDelgate
{
}
public class MyClass
{
public ServiceStatusDelgate[] listOfDelegatesToInvoke;
public void InvokeRequiredDelegates()
{
foreach(ServiceStatusDelegate delegateToInvoke in this.listOfDelegatesToInvoke)
delegateToInvoke.DynamicInvoke(new object[]{this, DateTime.Now});
}
}
您不需要代表列表。。。您在c#中创建的任何委托都将是多播的,因此您所需要的只是任何委托,您可以将它们与+
组合。只要调用它,就会达到所有目标。例如:
Action target = null;
...
target += Method1;
...
target += Method2;
...
if(target != null) target(); // calls Method1 and Method2
这可以通过事件
来实现(尽管它没有必要存在),这将使调用方非常清楚地看到约定