Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda menambahkan atribut ini ke kode Anda untuk pengkompilasi guna memancarkan pengubah Bahasa Perantara (IL) tertentu. Atribut ini menginstruksikan pengkompilasi untuk menyertakan pengubah IL yang sesuai dalam output.
Atribut | Pengubah | Komentar |
---|---|---|
System.Runtime.InteropServices.ComImportAttribute | import |
|
System.Runtime.InteropServices.DllImportAttribute | pinvokeimpl |
Anda dapat menambahkan opsi yang tercantum dalam konstruktor. |
System.Runtime.InteropServices.FieldOffsetAttribute | .field |
Ini mengatur offset bidang untuk tata letak memori. |
MarshalAsAttribute | marshal |
Anda dapat mengatur opsi yang tercantum dalam konstruktor. |
System.Runtime.CompilerServices.MethodImplAttribute | flag |
Argumen konstruktor menentukan bendera bernama tertentu seperti aggressiveinlining atau forwardref . Bendera ini juga menentukan pengubah native , managed , atau optil untuk bidang 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 , atau explicit |
Opsi tata letak dapat diatur menggunakan parameter . |
System.Runtime.CompilerServices.IndexerNameAttribute | Anda menambahkan atribut ini ke pengindeks untuk mengatur nama metode yang berbeda. Secara default, pengindeks dikompilasi ke properti bernama Item . Anda dapat menentukan nama yang berbeda menggunakan atribut ini. |
Beberapa atribut kustom ini diterapkan menggunakan sintaks C# lainnya daripada menambahkan atribut ke kode sumber Anda.
Atribut | Komentar |
---|---|
System.Runtime.InteropServices.DefaultParameterValueAttribute | Menentukan nilai default untuk parameter . Gunakan sintaks parameter default . |
System.Runtime.InteropServices.InAttribute | Menentukan pengubah IL [in] . Gunakan pengubah in atau ref readonly . |
System.Runtime.InteropServices.OutAttribute | Menentukan pengubah IL [out] . Gunakan pengubah out . |
System.Runtime.CompilerServices.SpecialNameAttribute | Menentukan pengubah IL specialname . Pengkompilasi secara otomatis menambahkan pengubah ini untuk metode yang memerlukannya. |
System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute | Atribut ini diperlukan untuk fitur delegate* . Pengkompilasi menambahkannya ke setiap delegate* yang membutuhkan penggunaannya. Namun, Anda harus menambahkan atribut ini ke deklarasi metode apa pun ketika metode tersebut ditetapkan ke penunjuk fungsi. |
Atribut berikut umumnya tidak diizinkan dalam sumber C#. Mereka tercantum di sini untuk membantu penulis perpustakaan yang menggunakan refleksi, dan untuk memastikan Anda tidak membuat atribut kustom dengan nama lengkap yang sama.
Atribut | Komentar |
---|---|
System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute | Mencegah pengkompilasi downlevel menggunakan metadata yang tidak dapat dipahami dengan aman. |
System.Runtime.CompilerServices.DecimalConstantAttribute | Mengodekan bidang const decimal . Runtime tidak mendukung nilai decimal sebagai nilai konstanta. |
System.Reflection.DefaultMemberAttribute | Mengodekan pengindeks dengan System.Runtime.CompilerServices.IndexerNameAttribute. Atribut ini mencatat pengindeks default ketika namanya berbeda dari Item . Atribut ini diizinkan di sumber. |
System.Runtime.CompilerServices.DynamicAttribute | Menandai apakah tipe dalam tanda tangan adalah dynamic (dibandingkan dengan object ). |
System.Runtime.CompilerServices.ExtensionAttribute | Atribut ini mencatat metode ekstensi. Pengkompilasi juga menempatkan atribut ini pada kelas yang berisi. |
System.Runtime.CompilerServices.FixedBufferAttribute | Atribut ini menentukan fixed bidang struct. |
System.Runtime.CompilerServices.IsByRefLikeAttribute | Atribut ini menentukan struktur ref . |
System.Runtime.CompilerServices.IsReadOnlyAttribute | Atribut ini menunjukkan bahwa parameter memiliki pengubah in . Ini membedakan parameter in dari readonly ref atau [In] ref . |
System.Runtime.CompilerServices.RequiresLocationAttribute | Atribut ini menunjukkan bahwa parameter memiliki pengubah readonly ref . Ini membedakan readonly ref dari in atau [In] ref . |
System.Runtime.CompilerServices.IsUnmanagedAttribute | Atribut ini menentukan batasan unmanaged pada parameter jenis. |
System.Runtime.CompilerServices.NullableAttribute, System.Runtime.CompilerServices.NullableContextAttribute, System.Runtime.CompilerServices.NullablePublicOnlyAttribute | Atribut ini mengenkode anotasi yang mampu bernilai null dalam kode sumber Anda. |
System.ParamArrayAttribute | Atribut ini mengodekan pengubah params pada parameter array. |
System.Runtime.CompilerServices.ParamCollectionAttribute | Atribut ini mengodekan pengubah params pada parameter non-array. |
System.Runtime.CompilerServices.RefSafetyRulesAttribute | Atribut ini menentukan versi C# yang diperlukan untuk memahami anotasi keamanan ref di rakitan. Aturan keselamatan ref berkembang karena C# mendapatkan fitur baru. |
System.Runtime.CompilerServices.RequiredMemberAttribute | Atribut ini menunjukkan bahwa pengubah required ditempatkan pada deklarasi anggota. Ini adalah pengodean fitur bahasa anggota yang diperlukan. |
System.Runtime.CompilerServices.TupleElementNamesAttribute | Atribut ini mengodekan nama elemen tuple yang digunakan dalam tanda tangan. |
Selain itu, kompilator dapat menghasilkan deklarasi untuk atribut lain yang digunakan secara internal. Pengkompilasi menghasilkan atribut ini di namespace System.Runtime.CompilerServices untuk penggunaannya sendiri. Beberapa tidak berada di pustaka .NET Runtime. Sebagai gantinya, kompilator mensintesis definisi untuk deklarasi jenis internal
di rakitan apa pun di mana atribut diperlukan.