Dil

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 scopedolarak olarak ref davrandığı ve derleyicinin yönteminden kaçmasına izin ref vermediği birkaç durum vardır. Örneğin:

  • this örneğin struct yöntemleri.
  • ref türlerine atıfta bulunan ref struct parametreler.
  • 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.

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ülün üzerinde mevcut olduğunda RefSafetyRulesAttribute geçerlidir, bu nedenle bu özniteliğin yalnızca ile RefSafetyRulesAttributeaçıklama ekli olan bir modülde belgelenmiş etkisi vardır.

Oluşturucular

Veri Akışı Adı Description
UnscopedRefAttribute()

UnscopedRefAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

Veri Akışı Adı 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

Veri Akışı Adı 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