Какие есть причины для получения подкласса от ThreadStaticAttribute?

Я обновлял свою память на C# ThreadStaticAttribute этим утром и следующая строка выскочила на меня:

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

Эта строка присутствует в документации для всех версий.Net Framework, и собственный анализ кода Microsoft по данной проблеме гласит, что атрибуты следует оставлять незапечатанными, только если они предназначены для того, чтобы быть частью иерархии атрибутов.

Итак ThreadStaticAttribute класс не сейчас, и , кажется, никогда не был, sealed, Зачем?

1 ответ

Есть много вещей, которые плохая идея делать 99% времени, и отличная идея 1%.

Есть еще больше вещей, которые плохая идея, если вы не разрабатываете сам фреймворк, но кто-то должен это делать.

В этом случае более вероятно, что кто-то захочет добавить особый случай ThreadStaticAttribute к рамкам, чем то, что вы или я захочу.

Даже это, вероятно, не так вероятно, но должны ли они активно предотвратить это сейчас или оставить возможность открытой?

Вы могли бы поспорить в любом случае, но кто-то решил остаться с возможностью. (Или не "они просто забыли" нельзя исключать).

Обратите внимание, что если бы они запечатали его сейчас, это было бы серьезным изменением, если бы кто-нибудь имел успех с производным атрибутом. Даже если уже утверждалось, что они не должны этого делать, и даже при том, что почти все изменения имеют некоторый риск что-то сломать, это будет аргументом, чтобы сохранить это как есть сейчас.

Другие вопросы по тегам