Ответ 1
Короче и длиннее, нет. Класс CustomType
по определению a Dictionary<int, SomeOtherCustomType>
, и поэтому он будет выделен как таковой.
Это особенно верно, потому что буквально не реализация для класса.
Я просматриваю чей-то код и наткнулся на этот частный класс:
class CustomType : Dictionary<int, SomeOtherCustomType>
{
// This is empty; nothing omitted here
}
Пользовательский тип затем используется по всему родительскому классу. Это, конечно, аккуратно, так как CustomType короче
Dictionary<int, SomeOtherCustomType>
Мой вопрос: каковы последствия производительности/памяти для внутреннего класса только для ярлыка? В приложении, чувствительном к производительности, способствует ли это (даже незначительно) увеличению загрузки памяти и/или процессора?
Короче и длиннее, нет. Класс CustomType
по определению a Dictionary<int, SomeOtherCustomType>
, и поэтому он будет выделен как таковой.
Это особенно верно, потому что буквально не реализация для класса.
Если нет другой причины для определения настраиваемого типа, я бы предложил изменить его на оператор 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
Однако, это сработает, если вы вместо этого используете псевдоним.