Сегодня я заметил что-то странное, что я сначала подумал Wouldnt компиляции:Атрибут oneliner без запятой?
[Serializable Obsolete]
class Program
{
static void Main(string[] args)
{
}
}
Обратите внимание запятая недостающую между сериализации и устаревшими. Это дает ошибку, но она все еще компилируется !. Почему это? Атрибуты даже работают так?
Это приятно знать. Кажется, вы можете связать атрибуты внутри одной группы '' '' ', используя пробел в качестве разделителя, например. '[Serializable Obsolete MyA MyB]' (где 'MyA' и' MyB' являются настраиваемыми атрибутами). Обычно (что большинство людей используют) каждый атрибут заключен в собственный '[' ']'. – Sinatr
Я пробовал ваш код и проверял прикладные атрибуты с помощью отражения. Оба они кажутся примененными к классу. _Что это ошибка, которую вы получаете, и _who_ поднимает ее? Это, очевидно, не ошибка компилятора (иначе компиляция не будет успешной). Я получаю ошибку «Атрибут недействителен при этом типе объявления», кажется, что ReSharper поднимает это, и думает, что я хочу применить первый атрибут ко второму. Во всяком случае, синтаксис no-comma кажется действительным в C#. –