UnscopedRefAttribute Sınıf

Tanım

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
UnscopedRefAttribute
Ö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:

  1. this örneğin struct yöntemleri.
  2. ref türlerine atıfta bulunan ref struct parametreler.
  3. out Parametreler.

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)

Şunlara uygulanır