Подтвердить что ты не робот

Использование частного класса вместо штрафа за производительность/память?

Я просматриваю чей-то код и наткнулся на этот частный класс:

class CustomType : Dictionary<int, SomeOtherCustomType>
{
    // This is empty; nothing omitted here
}

Пользовательский тип затем используется по всему родительскому классу. Это, конечно, аккуратно, так как CustomType короче

Dictionary<int, SomeOtherCustomType>

Мой вопрос: каковы последствия производительности/памяти для внутреннего класса только для ярлыка? В приложении, чувствительном к производительности, способствует ли это (даже незначительно) увеличению загрузки памяти и/или процессора?

4b9b3361

Ответ 1

Короче и длиннее, нет. Класс CustomType по определению a Dictionary<int, SomeOtherCustomType>, и поэтому он будет выделен как таковой.

Это особенно верно, потому что буквально не реализация для класса.

Ответ 2

Если нет другой причины для определения настраиваемого типа, я бы предложил изменить его на оператор using.

using CustomType = Dictionary<int, SomeOtherCustomType>;

Он просто определяет псевдоним для словаря и может быть весьма полезен, если вы потребляете некоторые сложные параметризованные классы.

Это устраняет необходимость объявления нового типа, поскольку, поскольку код стоит в настоящий момент, это может привести к ошибке.

CustomType dictionary = new Dictionary<int, SomeOtherCustomType>(); //custom type is a different class and can't be instantiated with a dictionary

Однако, это сработает, если вы вместо этого используете псевдоним.