Здравствуйте, Sinix, Вы писали:
_>>Так что вопрос сводится к "зачем они так сделали?". Тут могут быть варианты:
S>Ну, поведение тянется ещё с c# 3 (древнее лень проверять) + в первом рослине огромное количество времени уделяли полному совпадению il-выхлопа для существующего кода на c#, вплоть до тестов с компиляцией всего опенсорс-кода на шарпе на codeproject / codeplex (по памяти, поэтому без пруфов). Т.е. почему не поменялось сразу — понятно.
Поведение на всех версиях языка для vs2013 одинаковое.
S>Позднее, разумеется, пошли ломающие изменения, так что в принципе, может быть поправлено. В c# spec это нигде не оговорено (или я пропустил), в mono (онлайн-сервис для проверки) поведение логичное —
S>S>Type-level: 3 attributes
S>Assembly-level: 3 attributes
S>
Мне кажется что 2-2 будет логичнее чем 3-3. Какой смысл навешивать дважды один и тот же атрибут?