У меня такой код:

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

private List<Command> MyCommandSet;

Я хотел бы объявить пользовательский тип данных под названием CommandSet, который является не чем иным, как списком команд.

Это плоская замена старого кода, так что я мог набирать CommandSet везде, где обычно набирал List<Command>

Как я могу это сделать?

ПОСЛЕДУЮЩИЕ ДЕЙСТВИЯ: мой вопрос касается только экономии времени. Я никогда не говорил, что хочу сделать это только для экономии времени. Это больше вопрос обслуживания кода.

Если мне или другому пользователю моей кодовой базы нужно создать другой контейнер CommandSets, я смогу это сделать, не зная, что CommandSet является List<Command>

Я использовал предложенный ответ наследования. Работает нормально. Я чувствую, что было бы лучше, если бы C # предлагал замену кода препроцессора для подобных случаев.

c#
-1
JamesHoux 12 Мар 2018 в 21:47

2 ответа

Лучший ответ

Сделай это класс, и тебе хорошо идти

class CommandSet : List<Command>
{
}

Но я все же рекомендую использовать List<Command> для более читаемого кода.

2
Steve 12 Мар 2018 в 18:49

Попробуйте используя директиву псевдонима по адресу верх вашего файла:

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

Хотя это обычно не одобряется. Обычно считается лучшей практикой просто придерживаться List<Command>.

1
Joel Coehoorn 12 Мар 2018 в 19:03