我有一个 WsEvent 类:
internal class WsEvent
{
public string Name { get; private set; }
public void Invoke() {}
}
还有它的广义继任者:
internal class WsEvent<T> : WsEvent
{
public T EventData { get; private set; }
public void Invoke(T Data) {}
}
我想在使用泛型类时隐藏基类的 Invoke() 方法。现在 IntelliSens 建议泛型类实例具有重载的 Invoke() 和 Invoke(T) 方法。我只想要调用(T)。
也许整个方法是错误的。我正在尝试随机学习通用类)
无法隐藏基本方法。但是您不能从非泛型类型继承,或者您可以引入 2 个接口来代替 - 泛型和非泛型。旧类型实现非泛型接口,新类型实现泛型接口。并且已经根据需要继承接口。
例如,MS
IEnumerable<T>选择继承自IEnumerable. 但是,既然你想要其他方式,你不应该那样继承,而且对你来说,泛型和非泛型接口将彼此无关。选择一个接口:
并明确实现所需的方法: