Noe*_*mer 0 c# inheritance extension-methods interface
我有一个界面
public interface IInputReciever {
void OnRecieveInput(InputInfo Info);
}
Run Code Online (Sandbox Code Playgroud)
和一个接口扩展类
public static class IInputRecieverExtensions {
public static void SubscribeToInput(this IInputReciever Reciever) {
//Use member of X
}
public static void UnsubscribeFromInput(this IInputReciever Reciever) {
//Use member of X
}
}
Run Code Online (Sandbox Code Playgroud)
假设我有两个A和B类; 但是,虽然只有B继承自X,但都实现了我的界面.
public class B : X, IInputReciever {
//Contains members of B and X
}
public class A : IInputReciever {
//Contains members of A only
}
Run Code Online (Sandbox Code Playgroud)
在我的接口扩展中,我想使用X的成员,但是这不会编译,因为实现者不是X的子类,也不能保证是一个.
我可以以某种方式强制我的实现者从X派生以使这个场景工作 - 或者有更好的方法来解决这个问题吗?