我在简单地说,C#上遇到了这样的说法。
从技术上讲,一个子类型上的所有类型参数都是新的:您可以说一个子类型关闭然后重新打开基类型参数。--这意味着一个子类可以给它重新打开的类型参数提供新的(可能更有意义的)名称: 类列表{.}类KeyedList:列表{.}
我不明白用黑体字写的情况是如何进行的,即关闭重开。
发布于 2019-11-30 11:00:57
它们的意思是子类有自己的、完全独立的泛型参数列表,基类中的泛型参数不会被子类自动“继承”。
而不是关闭和重新打开,他们可以说,清除和重新创建。
但这种清算背后的理由是什么呢?为什么子类类型参数不会自动继承?答案很简单--这样您就可以拥有一个子类,它的泛型参数比它的基类少。
考虑以下例子:
public class TheBase<T> { ... }
// This subclass clears the list of generic parameters
// by instantiating T with int. Thus, the subclass has 0
// generic arguments
public class TheSubclass : TheBase<int> { ...
// This subclass reuses and gives a new name to the base class type argument
// The T from the base class is named TheType here.
// The subclass has 1 generic argument
public class AnotherSubclass<TheType> : TheBase<TheType> { ...
// This subclass reuses the generic argument but also introduces its own.
// It has 2 generic arguments.
// Base class' T is called U here.
public class YetAnothersubclass<U,V> : TheBase<U>https://stackoverflow.com/questions/59087336
复制相似问题