UnscopedRefAttribute Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Byref kaçışlarını belirtmek için kullanılır ve kapsamı belirlenmiş değildir.
public ref class UnscopedRefAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)]
public sealed class UnscopedRefAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)>]
type UnscopedRefAttribute = class
inherit Attribute
Public NotInheritable Class UnscopedRefAttribute
Inherits Attribute
- Devralma
- Öznitelikler
Açıklamalar
C# derleyicisinin örtük ref olarak bir scoped olarak davrandığı birkaç durum vardır; burada derleyici yönteminden ref kaçmasına izin vermez.
Örneğin:
-
thisörneğinstructyöntemleri. -
reftürlerine atıfta bulunanref structparametreler. -
outParametreler.
Bu öznitelik, kaçmasına izin verilmesi gereken örneklerde ref kullanılır.
Bu özniteliğin herhangi bir biçimde uygulanması, ilgili API'nin tüketicilerini etkiler. API yazarlarının bu özniteliği uygulamanın yaşam süresi üzerindeki etkilerini ve kullanıcılarını nasıl etkileyebileceklerini anlaması gerekir.
<format type="text/markdown">
Bu öznitelik çalışma zamanı tarafından özel olarak tanınır. ECMA-335 augment III.1.7.7, geçerli IL'de bu özniteliğe başvuran kısıtlamaları tanımlar. Örneğin, bu öznitelik bir değer türünün örnek yöntemine uygulandığında, bağımsız değişkenin this yöntemden kaçmasına izin verilir. Özniteliği olmadığında, iyileştirici bir derleyici, kutulamanın ortadan kaldırılması gibi belirli kod desenlerini daha iyi hale getirmek için kaçmamaya dayanabilir this . Daha fazla bilgi için bkz. ECMA-335 CLI Belirtimi Eki, Sn. III.1.7.7 ("Kabul kısıtlamaları").
Çalışma zamanı bu özniteliğe bağlı olduğundan, derlemeden kaldırılamaz. Augment III.1.7.7 tarafından tanımlanan kısıtlamalar yalnızca <modülde xref:System.Runtime.CompilerServices.RefSafetyRulesAttribute> bulunduğunda geçerlidir, bu nedenle bu özniteliğin belgelenmiş etkisi yalnızca 'RefSafetyRulesAttribute' ile de ekli olan bir modülde olur.
</Biçim>
Oluşturucular
| Name | Description |
|---|---|
| UnscopedRefAttribute() |
UnscopedRefAttribute sınıfının yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| TypeId |
Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır. (Devralındığı yer: Attribute) |
Yöntemler
| Name | Description |
|---|---|
| Equals(Object) |
Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür. (Devralındığı yer: Attribute) |
| GetHashCode() |
Bu örneğin karma kodunu döndürür. (Devralındığı yer: Attribute) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| IsDefaultAttribute() |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir. (Devralındığı yer: Attribute) |
| Match(Object) |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür. (Devralındığı yer: Attribute) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |