Значение текста между квадратными скобками
Я видел много программ на С#, которые используют []
, например [STAThread]
, а затем код. Другим классическим примером является [DLLImport]
.
Я знаю, что означает STAThread
, но мой вопрос в том, каково значение квадратных скобок, по сути, что они сообщают компилятору?
Ответы
Ответ 1
Это атрибут. Атрибуты - это форма метаданных, которые вы можете присоединить к различным элементам кода: классы, методы, сборки и т.д.
Некоторые атрибуты имеют особое значение для компилятора С#, например, [Serializable]
, вероятно, говорит компилятору испустить некоторый код, который может сериализовать экземпляр класса (я говорю "возможно", так как я не знаю, компилятор С#).
Вы также можете создавать свои собственные атрибуты (наследуя System.Attribute
). Используя отражение, вы можете в процессе выполнения извлечь информацию из атрибутов.
Простым примером может быть создание атрибута для указания того, какое поле ввода использовать в форме HTML при отображении свойства объекта.
Некоторые ссылки:
Ответ 2
Это атрибуты.
Атрибуты имеют много применений - [Obsolete]
маркирует метод как устаревший, и компилятор предупредит вас. Другие, такие как [DebuggerNonUserCode]
ничего не сообщают компилятору и могут ли отладчик знать, что код в отмеченном методе автогенерируется.
Вы также можете создавать свои собственные атрибуты и использовать их для обозначения любых метаданных. Например, ваш объект Customer может иметь атрибут [MarketingInformation("Customer is rich! Milk him good!")].
Ответ 3
См. здесь информацию об атрибутах в .Net:
http://msdn.microsoft.com/en-us/library/5x6cd29c.aspx
Ответ 4
Это атрибуты, которые добавляют метаданные к тем, что они украшают.
Ответ 5
Тезисы называются атрибутами кода. Атрибуты используются для обозначения кода со свойствами, которые обычно предназначены для указания поведения во время выполнения. Они обычно используются для обозначения методов, свойств и параметров. Во время выполнения вашего кода для проверки кода будет выполнено что-то под названием "отражение". Отражение говорит компилятору наблюдать и соблюдать любые инструкции, указанные вами в качестве атрибутов маркировки кодера для кода.
Хорошим примером может служить атрибут [Serializable]. Этот атрибут, помеченный над классом, указывает компилятору, что он может быть сериализован для целей сохранения экземпляра класса или для передачи через среду, такую как веб-службы SOAP.
См. следующую статью:
текст ссылки