Подтвердить что ты не робот

Значение текста между квадратными скобками

Я видел много программ на С#, которые используют [], например [STAThread], а затем код. Другим классическим примером является [DLLImport].

Я знаю, что означает STAThread, но мой вопрос в том, каково значение квадратных скобок, по сути, что они сообщают компилятору?

4b9b3361

Ответ 1

Это атрибут. Атрибуты - это форма метаданных, которые вы можете присоединить к различным элементам кода: классы, методы, сборки и т.д.

Некоторые атрибуты имеют особое значение для компилятора С#, например, [Serializable], вероятно, говорит компилятору испустить некоторый код, который может сериализовать экземпляр класса (я говорю "возможно", так как я не знаю, компилятор С#).

Вы также можете создавать свои собственные атрибуты (наследуя System.Attribute). Используя отражение, вы можете в процессе выполнения извлечь информацию из атрибутов.

Простым примером может быть создание атрибута для указания того, какое поле ввода использовать в форме HTML при отображении свойства объекта.

Некоторые ссылки:

Ответ 2

Это атрибуты.

Атрибуты имеют много применений - [Obsolete] маркирует метод как устаревший, и компилятор предупредит вас. Другие, такие как [DebuggerNonUserCode] ничего не сообщают компилятору и могут ли отладчик знать, что код в отмеченном методе автогенерируется.

Вы также можете создавать свои собственные атрибуты и использовать их для обозначения любых метаданных. Например, ваш объект Customer может иметь атрибут [MarketingInformation("Customer is rich! Milk him good!")].

Ответ 4

Это атрибуты, которые добавляют метаданные к тем, что они украшают.

Ответ 5

Тезисы называются атрибутами кода. Атрибуты используются для обозначения кода со свойствами, которые обычно предназначены для указания поведения во время выполнения. Они обычно используются для обозначения методов, свойств и параметров. Во время выполнения вашего кода для проверки кода будет выполнено что-то под названием "отражение". Отражение говорит компилятору наблюдать и соблюдать любые инструкции, указанные вами в качестве атрибутов маркировки кодера для кода.

Хорошим примером может служить атрибут [Serializable]. Этот атрибут, помеченный над классом, указывает компилятору, что он может быть сериализован для целей сохранения экземпляра класса или для передачи через среду, такую ​​как веб-службы SOAP.

См. следующую статью: текст ссылки