好的,我在stackoverflow上阅读了有关该主题的内容,观看了&this,但是对于co / contra-variance还是有些困惑。
从这里
协方差允许在原始类型仅用于“输出”位置(例如,作为返回值)的API中替换“较大”(较不具体)的类型。协变性允许在原始类型仅用于“输入”位置的API中替换“较小”(更具体)的类型。
我知道这与类型安全有关。
关于这in/out件事。我可以说我in何时需要写它,out何时需要它只读。和in装置,禁忌方差,out协方。但是根据上面的解释...
与此
例如,List<Banana>不能将a视为a,List<Fruit>因为 list.Add(new Apple())它对List有效,但对无效List<Banana>。
所以不应该,如果我要使用in/要写入该对象,则它必须更大,更通用。
我知道有人问过这个问题,但仍然很困惑。
aluckdog
翻过高山走不出你
相关分类