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