Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Добавьте эти атрибуты в код компилятора для выдачи указанного модификатора промежуточного языка (IL). Эти атрибуты указывают компилятору включить соответствующий модификатор IL в выходные данные.
Справочные документы на языке C#, выпущенные последней версией языка C#. Она также содержит начальную документацию по функциям в общедоступных предварительных версиях для предстоящего языкового выпуска.
Документация определяет любую функцию, впервые представленную в последних трех версиях языка или в текущих общедоступных предварительных версиях.
Подсказка
Чтобы узнать, когда функция впервые появилась в C#, ознакомьтесь со статьей по журналу версий языка C#.
| Атрибут | Модификатор | Комментарии |
|---|---|---|
| System.Runtime.InteropServices.ComImportAttribute | import |
|
| System.Runtime.InteropServices.DllImportAttribute | pinvokeimpl |
Вы можете добавить параметры, перечисленные в конструкторе. |
| System.Runtime.InteropServices.FieldOffsetAttribute | .field |
Это задает смещение поля для макета памяти. |
| MarshalAsAttribute | marshal |
Параметры, перечисленные в конструкторе, можно задать. |
| System.Runtime.CompilerServices.MethodImplAttribute | flag |
Аргументы конструктора указывают определенные именованные флаги, такие как aggressiveinlining или forwardref. Эти флаги также указывают модификаторы native, managedили optil для поля System.Runtime.CompilerServices.MethodCodeType. |
| System.NonSerializedAttribute | notserialized |
|
| System.Runtime.InteropServices.OptionalAttribute | [opt] |
|
| System.Runtime.InteropServices.PreserveSigAttribute | preservesig |
|
| System.SerializableAttribute | serializable |
|
| System.Runtime.InteropServices.StructLayoutAttribute |
auto, sequentialили explicit |
Параметры макета можно задать с помощью настроек. |
| System.Runtime.CompilerServices.IndexerNameAttribute | Добавьте этот атрибут в индексатор, чтобы задать другое имя метода. По умолчанию индексаторы компилируются в свойство с именем Item. Можно указать другое имя с помощью этого атрибута. |
Это важно
Не удается объединить [StructLayoutAttribute] с атрибутом ExtendedLayout .
Некоторые из этих настраиваемых атрибутов применяются с помощью другого синтаксиса C#, а не добавления атрибута в исходный код.
| Атрибут | Комментарии |
|---|---|
| System.Runtime.InteropServices.DefaultParameterValueAttribute | Задает значение по умолчанию для параметра. Используйте синтаксис параметра по умолчанию. |
| System.Runtime.InteropServices.InAttribute | Задает модификатор IL [in]. Используйте модификаторы in или ref readonly. |
| System.Runtime.InteropServices.OutAttribute | Задает модификатор IL [out]. Используйте модификатор out. |
| System.Runtime.CompilerServices.SpecialNameAttribute | Задает модификатор IL specialname. Компилятор автоматически добавляет этот модификатор для методов, требующих его. |
| System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute | Этот атрибут необходим для функции delegate*. Компилятор добавляет его в любой delegate*, где это необходимо. Однако этот атрибут необходимо добавить в любое объявление метода при назначении этого метода указателю функции. |
Следующие атрибуты обычно запрещены в источнике C#. Они перечислены здесь, чтобы помочь авторам библиотек, которые используют механизм отражения, и гарантировать, что вы не создадите пользовательские атрибуты с одинаковым полным квалифицированным именем.
| Атрибут | Комментарии |
|---|---|
| System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute | Запрещает компиляторам внизу использовать метаданные, которые они не могут безопасно понять. |
| System.Runtime.CompilerServices.DecimalConstantAttribute | Кодирует поля const decimal. Среда выполнения не поддерживает значения decimal в качестве констант. |
| System.Reflection.DefaultMemberAttribute | Кодирует индексаторы с помощью System.Runtime.CompilerServices.IndexerNameAttribute. Этот атрибут отмечает индексатор по умолчанию, если его имя отличается от Item. Этот атрибут разрешен в источнике. |
| System.Runtime.CompilerServices.DynamicAttribute | Кодирует, является ли тип в сигнатуре dynamic (в отличие от object). |
| System.Runtime.CompilerServices.ExtensionAttribute | Этот атрибут отмечает методы расширения. Компилятор также помещает этот атрибут в содержащие классы. |
| System.Runtime.CompilerServices.FixedBufferAttribute | Этот атрибут определяет поля структуры fixed. |
| System.Runtime.CompilerServices.IsByRefLikeAttribute | Этот атрибут задает структуру ref. |
| System.Runtime.CompilerServices.IsReadOnlyAttribute | Этот атрибут указывает, что параметр имеет модификатор in. Он отличает параметры in от readonly ref или [In] ref. |
| System.Runtime.CompilerServices.RequiresLocationAttribute | Этот атрибут указывает, что параметр имеет модификатор readonly ref. Он отличает readonly ref от in или [In] ref. |
| System.Runtime.CompilerServices.IsUnmanagedAttribute | Этот атрибут задает ограничение unmanaged для параметра типа. |
| System.Runtime.CompilerServices.NullableAttribute, , System.Runtime.CompilerServices.NullableContextAttributeSystem.Runtime.CompilerServices.NullablePublicOnlyAttribute | Эти атрибуты кодируют заметки, допускающие значение NULL, в исходном коде. |
| System.ParamArrayAttribute | Этот атрибут кодирует модификатор params для параметров массива. |
| System.Runtime.CompilerServices.ParamCollectionAttribute | Этот атрибут кодирует модификатор params для параметров, отличных от массива. |
| System.Runtime.CompilerServices.RefSafetyRulesAttribute | Этот атрибут указывает версию C#, необходимую для понимания аннотаций безопасности ref в сборке. Правила безопасности ссылок развиваются по мере того, как C# получает новые функции. |
| System.Runtime.CompilerServices.RequiredMemberAttribute | Этот атрибут указывает, что модификатор required был помещен в объявление члена. Это кодировка обязательных элементов языка. |
| System.Runtime.CompilerServices.TupleElementNamesAttribute | Этот атрибут кодирует имена элементов кортежа, которые используются в сигнатурах. |
Кроме того, компилятор может создать объявление для других атрибутов, используемых внутренне. Компилятор создает эти атрибуты в пространстве имен System.Runtime.CompilerServices для собственного использования. Некоторые из них не в библиотеках среды выполнения .NET. Вместо этого компилятор синтезирует определение для объявления типа internal в любой сборке, где требуется атрибут.