C# 具有泛型参数类型的抽象类列表?

C# 具有泛型参数类型的抽象类列表?,c#,abstract-class,C#,Abstract Class,假设我有这些课程: 公共抽象类事物{} 公共类Str:Thing{} 公共类Boo:Thing{} 我想创建一个事物的列表 这是我想做的一个例子(无效的C代码): 新列表() { 新Str(), 新Boo() }; 我怎么能做那样的事,这可能吗 我发现但似乎无法正确理解任何建议的答案。要满足列表的要求,那么东西必须继承东西。您链接的帖子中的答案有一个解决方案:您需要引入一个非泛型基类 public abstract class Something { } public abstract cl

假设我有这些课程:

公共抽象类事物{}
公共类Str:Thing{}
公共类Boo:Thing{}
我想创建一个
事物的
列表

这是我想做的一个例子(无效的C代码):

新列表()
{
新Str(),
新Boo()
};
我怎么能做那样的事,这可能吗

我发现但似乎无法正确理解任何建议的答案。

要满足
列表
的要求,那么
东西
必须继承
东西
。您链接的帖子中的答案有一个解决方案:您需要引入一个非泛型基类

public abstract class Something { }
public abstract class Thing<T>: Something { }

public class Str : Thing<string> { }
public class Boo : Thing<bool> { }

new List<Something>()
{
    new Str(),
    new Boo()
};

public抽象类Something{}
公共抽象类事物:某物{}
公共类Str:Thing{}
公共类Boo:Thing{}
新名单()
{
新Str(),
新Boo()
};

您的列表将被定义为
新列表()
新列表()
。如果您不想指定它,您将需要创建一个名为Thing的新类,Thing继承自该类。然后你就可以拥有虚拟/抽象的方法,这些方法必须重写。你为Jon的答案编写了代码(来自我链接的帖子),这正是我所需要的,因为我无法理解他。谢谢。
public abstract class Something { }
public abstract class Thing<T>: Something { }

public class Str : Thing<string> { }
public class Boo : Thing<bool> { }

new List<Something>()
{
    new Str(),
    new Boo()
};