Nullable struct vs class
У меня есть простая структура, которая содержит два поля; один хранит объект, а другой сохраняет DateTime. Я сделал это, потому что я хотел хранить объекты в словаре, но также с отметкой DateTime.
У меня есть метод, который возвращает мою структуру, и теперь я решил, что метод также должен возвращать значение null, поэтому я сделал свою структуру нулевой. Я теперь задаюсь вопросом, следует ли мне просто сделать мою структуру классом, чтобы это был ссылочный тип?
Ответы
Ответ 1
В этом случае, да, возможно, яснее сделать вашу структуру классом.
Что касается обоснования, вы по существу создаете специализированный Tuple
. Интересно отметить, что дизайнеры библиотеки решили сделать .NET 4 Tuple
класс, а не структуру. (Эта страница является создателем кортежа и связана с различными классами экземпляров кортежей)
Ответ 2
Либо должно быть хорошо, на самом деле (пока struct
неизменен). A DateTime
и ссылка не должна быть достаточной, чтобы сделать ее негабаритной.
Я предполагаю, что вы используете его как значение (а не ключ) в словаре? Если в качестве ключа вам необходимо переопределить Equals
и GetHashCode()
, независимо от struct
vs class
.