我如何在列表中存储多个通用类型 >?

问题描述 投票:2回答:2

我有一个TokenDefinition<T>类别,其中T不受限制

public class TokenDefinition<T> { ... }

模块输出这些令牌的流。类型信息在其他地方很有用,但是现在,我只需要一种简单的方法即可整理/传递它们。

我原以为这会起作用:

var expected = new List<TokenDefinition<object>>();
expected.Add(new TokenDefinition<string>());
expected.Add(new TokenDefinition<double>());
expected.Add(new TokenDefinition<Keyword>()); // Keyword is an enum

但是那给了我Cannot convert from TokenDefinition<string> to TokenDefinition<object>

所以我尝试在插入之前进行强制转换以明确显示...

expected.Add((TokenDefinition<object>) new TokenDefinition<string>());

相同的问题,不同的措词:Cannot convert type TokenDefinition<string> to TokenDefinition<object>

我想念什么?

Everything是一个对象,所以我很难理解为什么不允许这种(扩展)转换?

c# generics casting
2个回答
1
投票

0
投票

尝试一下

© www.soinside.com 2019 - 2024. All rights reserved.