Aracılığıyla paylaş


Ara Dil (IL) çıkışında bayraklar veya seçenekler oluşturan özel öznitelikler

Derleyicinin belirtilen Ara Dil (IL) değiştiricisini yaymak için kodunuza bu öznitelikleri ekleyin. Bu öznitelikler derleyiciye çıkışa karşılık gelen IL değiştiricisini eklemesini emreder.

C# dili başvuru belgesi, C# dilinin en son yayımlanan sürümünü gösterir. Ayrıca, yaklaşan dil sürümü için genel önizlemelerdeki özelliklere yönelik ilk belgeleri içerir.

Belgelerde ilk olarak dilin son üç sürümünde veya geçerli genel önizlemelerde sunulan tüm özellikler tanımlanır.

Tavsiye

Bir özelliğin C# dilinde ilk tanıtıldığı zamanları bulmak için C# dil sürümü geçmişi makalesine bakın.

Öznitelik Değiştirici Yorum
System.Runtime.InteropServices.ComImportAttribute import
System.Runtime.InteropServices.DllImportAttribute pinvokeimpl Oluşturucuda listelenen seçenekleri ekleyebilirsiniz.
System.Runtime.InteropServices.FieldOffsetAttribute .field Bu, bellek düzeni için alan uzaklığını ayarlar.
MarshalAsAttribute marshal Oluşturucuda listelenen seçenekleri ayarlayabilirsiniz.
System.Runtime.CompilerServices.MethodImplAttribute flag Oluşturucu bağımsız değişkenleri, aggressiveinlining veya forwardrefgibi belirli adlandırılmış bayrakları belirtir. Bu bayraklar, native alanı için managed, optilveya System.Runtime.CompilerServices.MethodCodeType değiştiricilerini de belirtir.
System.NonSerializedAttribute notserialized
System.Runtime.InteropServices.OptionalAttribute [opt]
System.Runtime.InteropServices.PreserveSigAttribute preservesig
System.SerializableAttribute serializable
System.Runtime.InteropServices.StructLayoutAttribute auto, sequentialveya explicit Düzen seçenekleri parametreleri kullanılarak ayarlanabilir.
System.Runtime.CompilerServices.IndexerNameAttribute Farklı bir yöntem adı ayarlamak için bu özniteliği dizin oluşturucuya ekleyin. Dizin oluşturucular varsayılan olarak Itemadlı bir özelliğe derlenir. Bu özniteliği kullanarak farklı bir ad belirtebilirsiniz.

Önemli

[StructLayoutAttribute] özniteliğiyle ExtendedLayout birleştirilemiyor.

Bu özel özniteliklerden bazıları, kaynak kodunuz için özniteliği eklemek yerine diğer C# söz dizimi kullanılarak uygulanır.

Öznitelik Yorum
System.Runtime.InteropServices.DefaultParameterValueAttribute parametresi için varsayılan değeri belirtir. varsayılan parametre söz diziminikullanın.
System.Runtime.InteropServices.InAttribute IL [in] değiştiricisini belirtir. in veya ref readonly değiştiricilerini kullanın.
System.Runtime.InteropServices.OutAttribute IL [out] değiştiricisini belirtir. out değiştiricisini kullanın.
System.Runtime.CompilerServices.SpecialNameAttribute IL specialname değiştiricisini belirtir. Derleyici, bu değiştiriciyi gerektiren yöntemler için otomatik olarak ekler.
System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute Bu öznitelik delegate* özelliği için gereklidir. Derleyici, kullanımını gerektiren her delegate*'ye bunu ekler. Ancak, bu yöntem bir işlev işaretçisine atandığında bu özniteliği herhangi bir yöntem bildirimine eklemeniz gerekir.

C# kaynağında aşağıdaki özniteliklere genellikle izin verilmez. Bunlar, yansıma kullanan kitaplık yazarlarına yardımcı olmak ve aynı tam ada sahip özel öznitelikler oluşturmadığınızdan emin olmak için burada listelenir.

Öznitelik Yorum
System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute Alt düzey derleyicilerin güvenli bir şekilde anlayamayacağı meta verileri kullanmasını engeller.
System.Runtime.CompilerServices.DecimalConstantAttribute const decimal alanları kodlar. Çalışma zamanı decimal değerleri sabit değerler olarak desteklemez.
System.Reflection.DefaultMemberAttribute Dizin oluşturucuları System.Runtime.CompilerServices.IndexerNameAttributeile kodlar. Bu öznitelik, ismi Item'dan farklı olduğunda varsayılan dizin oluşturucuyu belirtir. Bu özniteliğe kaynakta izin verilir.
System.Runtime.CompilerServices.DynamicAttribute İmzadaki bir türün dynamic (objectyerine) olup olmadığını kodlar.
System.Runtime.CompilerServices.ExtensionAttribute Bu öznitelik, uzantı yöntemlerini not eder. Derleyici bu özniteliği de içeren sınıflara yerleştirir.
System.Runtime.CompilerServices.FixedBufferAttribute Bu öznitelik fixed yapı alanlarını belirtir.
System.Runtime.CompilerServices.IsByRefLikeAttribute Bu öznitelik bir ref yapısı belirtir.
System.Runtime.CompilerServices.IsReadOnlyAttribute Bu öznitelik, bir parametrenin in değiştiricisine sahip olduğunu gösterir. in parametrelerini readonly ref veya [In] refbirbirinden ayırır.
System.Runtime.CompilerServices.RequiresLocationAttribute Bu öznitelik, bir parametrenin readonly ref değiştiricisine sahip olduğunu gösterir. O, readonly refin'den veya [In] ref'den ayırt eder.
System.Runtime.CompilerServices.IsUnmanagedAttribute Bu öznitelik, bir tür parametresinde unmanaged kısıtlamasını belirtir.
System.Runtime.CompilerServices.NullableAttribute, System.Runtime.CompilerServices.NullableContextAttribute, System.Runtime.CompilerServices.NullablePublicOnlyAttribute Bu öznitelikler, kaynak kodunuzda null hale getirilebilen açıklamaları kodlar.
System.ParamArrayAttribute Bu öznitelik, dizi parametrelerinde params değiştiricisini kodlar.
System.Runtime.CompilerServices.ParamCollectionAttribute Bu öznitelik, dizi olmayan parametrelerde params değiştiricisini kodlar.
System.Runtime.CompilerServices.RefSafetyRulesAttribute Bu öznitelik, derlemedeki ref güvenliği açıklamalarını anlamak için gereksinim duyulan C# sürümünü belirtir. C# yeni özelliklere sahip olduğundan başvuru güvenliği kuralları gelişir.
System.Runtime.CompilerServices.RequiredMemberAttribute Bu öznitelik, required değiştiricinin bir üye bildirimine yerleştirildiğini gösterir. Bu, gerekli üyelerin dil özelliğinin kodlamasıdır.
System.Runtime.CompilerServices.TupleElementNamesAttribute Bu öznitelik, imzalarda kullanılan demet öğe adlarını kodlar.

Ayrıca, derleyici dahili olarak kullanılan diğer öznitelikler için bir bildirim oluşturabilir. Derleyici bu öznitelikleri kendi kullanımı için System.Runtime.CompilerServices ad alanında oluşturur. Bazıları .NET Çalışma Zamanı kitaplıklarında değildir. Bunun yerine, derleyici özniteliğin gerekli olduğu herhangi bir derlemede internal tür bildirimi için bir tanım sentezler.