Какие есть причины для получения подкласса от ThreadStaticAttribute?
Я обновлял свою память на C# ThreadStaticAttribute
этим утром и следующая строка выскочила на меня:
Используйте этот атрибут как есть, и не производите от него.
Эта строка присутствует в документации для всех версий.Net Framework, и собственный анализ кода Microsoft по данной проблеме гласит, что атрибуты следует оставлять незапечатанными, только если они предназначены для того, чтобы быть частью иерархии атрибутов.
Итак ThreadStaticAttribute
класс не сейчас, и , кажется, никогда не был, sealed
, Зачем?
1 ответ
Есть много вещей, которые плохая идея делать 99% времени, и отличная идея 1%.
Есть еще больше вещей, которые плохая идея, если вы не разрабатываете сам фреймворк, но кто-то должен это делать.
В этом случае более вероятно, что кто-то захочет добавить особый случай ThreadStaticAttribute
к рамкам, чем то, что вы или я захочу.
Даже это, вероятно, не так вероятно, но должны ли они активно предотвратить это сейчас или оставить возможность открытой?
Вы могли бы поспорить в любом случае, но кто-то решил остаться с возможностью. (Или не "они просто забыли" нельзя исключать).
Обратите внимание, что если бы они запечатали его сейчас, это было бы серьезным изменением, если бы кто-нибудь имел успех с производным атрибутом. Даже если уже утверждалось, что они не должны этого делать, и даже при том, что почти все изменения имеют некоторый риск что-то сломать, это будет аргументом, чтобы сохранить это как есть сейчас.