为什么我不能在我的界面中添加委托?
您可以使用以下任何一种:
public delegate double CustomerDelegate(int test); public interface ITest { EventHandlerMyHandler{get;set;} CustomerDelegate HandlerWithCustomDelegate { get; set; } event EventHandler MyEvent; }
委托只是另一种类型,因此您不会通过将其置于界面中来获得任何东西.
您不需要创建自己的代理.大多数情况下,您应该只使用EventHandler,Func,Predicate或Action.
请问您的代表是什么样的?
这是一个代表TYPE decalaration ...
public delegate returntype MyDelegateType (params)
这不能在接口中声明,因为它是一个类型声明
但是使用上面的类型声明,您可以使用委托实例
MyDelegateType MyDelegateInstance ( get; set;)
所以委托实例没问题,但委托类型声明不是(在界面中)
甲代表是一个类型,其不能在界面中声明.您可能希望使用事件(如果适用)或在接口外部但在同一名称空间中声明委托.
此链接可能有所帮助 - 何时使用代理而不是接口