如何在C#中用自定义标识符替换数据类型?

如何在C#中用自定义标识符替换数据类型?,c#,C#,我有这样的代码: private Dictionary<Int32, List<Command>> OutboundCommandSetsById; private Dictionary<Int32, List<Command>> InboundCommentSetsById; private List<Command> MyCommandSet; private Dictionary OutboundCommandSetsById

我有这样的代码:

private Dictionary<Int32, List<Command>> OutboundCommandSetsById;
private Dictionary<Int32, List<Command>> InboundCommentSetsById;

private List<Command> MyCommandSet;
private Dictionary OutboundCommandSetsById;
私有字典InboundCommentSetsById;
私有列表MyCommandSet;
我想声明一个名为
CommandSet
的自定义数据类型,它只不过是一个命令列表

这是一个平面的旧代码替换,所以我可以在我通常键入的任何地方键入
CommandSet

我该怎么做

跟进:有人建议我的问题只涉及节省时间。我从没说过我只是想节省时间。这更多的是代码维护的问题

如果我或我的代码库的其他用户需要创建另一个
命令集
容器,我应该能够这样做,而不必知道
命令集
是一个
列表


我使用了建议的继承答案。它很好用。我觉得如果C为这样的情况提供预处理器代码替代,它的性能会更好

上一节课,你就可以走了

class CommandSet : List<Command>
{
}
class命令集:列表
{
}
但我仍然建议使用
列表
,以获得更具可读性的代码

请在文件顶部尝试:

using System.Collections.Generics; 
using CommandSet = List<Command>;
使用System.Collections.Generics;
使用CommandSet=List;

尽管人们普遍不赞成这样做。通常认为,坚持使用
List

是更好的做法。此操作在WPF/UWP中非常有用。有时需要在XAML中定义集合,但不能使用C类型。这种“强化”类型的方法是一种解决办法。@Christopher如果你仔细阅读这个问题,你会发现OP这样做是为了节省一些类型。这与WPF/UWP无关,所以我站在正确的立场。我从未声称你是错的。我刚刚指出,采用这种方式(而不是使用类型别名)会有一些次要的好处。我可以理解为什么对于非常短的类型不赞成使用这种方式。但是,如果您遇到计时器不明确,并且必须使用完全限定的名称(system.windows.forms.Timer),我看不出有任何问题?在大多数情况下,不明确是由于试图在同一文件或类中执行太多操作的结果。但偶尔,这是有用的。这就是它存在的原因,也是我使用“通常”和“一般”这样的花言巧语的原因。