Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Arayan Bilgisi özniteliklerini kullanarak, bir yönteme çağıran hakkında bilgi edinebilirsiniz. Kaynak kodun dosya yolunu, kaynak kodundaki satır numarasını ve çağıranın üye adını alabilirsiniz. Bu bilgiler tanılama araçlarını izleme, hata ayıklama ve oluşturma için yararlıdır.
Bu bilgileri almak için, her biri varsayılan değere sahip isteğe bağlı parametrelere uygulanan öznitelikleri kullanırsınız. Aşağıdaki tabloda, System.Runtime.CompilerServices ad alanında tanımlanan Arayan Bilgilerine ait öznitelikler listelenir.
| Özellik | Açıklama | Türü |
|---|---|---|
| CallerFilePathAttribute | Çağıranı içeren kaynak dosyanın tam yolu. Bu, derleme zamanındaki dosya yoludur. | String |
| CallerLineNumberAttribute | Yöntemin çağrıldığı kaynak dosyadaki satır numarası. | Integer |
| CallerMemberNameAttribute | Çağıranın yöntem veya özellik adı. Bu konunun ilerleyen kısımlarında Üye Adları bölümüne bakın. | String |
| CallerArgumentExpressionAttribute | Çağıran tarafından bağımsız değişken için kullanılan ifade. Bu konunun devamında yer alan Arayan İfadeleri bölümüne bakın. | String |
Örnek
Aşağıdaki örnekte, Arayan Bilgisi özniteliklerinin nasıl kullanılacağı gösterilmektedir.
TraceMessage yöntemine her çağrı yapıldığında, çağıran bilgileri isteğe bağlı parametrelere argüman olarak geçirilir.
Private Sub DoProcessing()
TraceMessage("Something happened.")
End Sub
Public Sub TraceMessage(message As String,
<System.Runtime.CompilerServices.CallerMemberName> Optional memberName As String = Nothing,
<System.Runtime.CompilerServices.CallerFilePath> Optional sourcefilePath As String = Nothing,
<System.Runtime.CompilerServices.CallerLineNumber()> Optional sourceLineNumber As Integer = 0)
System.Diagnostics.Trace.WriteLine("message: " & message)
System.Diagnostics.Trace.WriteLine("member name: " & memberName)
System.Diagnostics.Trace.WriteLine("source file path: " & sourcefilePath)
System.Diagnostics.Trace.WriteLine("source line number: " & sourceLineNumber)
End Sub
' Sample output:
' message: Something happened.
' member name: DoProcessing
' source file path: C:\Users\username\Documents\Visual Studio 2012\Projects\CallerInfoVB\CallerInfoVB\Form1.vb
' source line number: 15
Açıklamalar
İsteğe bağlı her parametre için açık bir varsayılan değer belirtmeniz gerekir. İsteğe bağlı olarak belirtilmeyen parametrelere Arayan Bilgisi özniteliklerini uygulayamazsınız.
Arayan Bilgisi öznitelikleri parametreyi isteğe bağlı yapmaz. Bunun yerine, bağımsız değişken atlandığında geçen varsayılan değeri etkilerler.
Çağıran Bilgisi değerleri, derleme zamanında Ara Dile (IL) değişmez değer olarak gönderilir. Özel durumlar için StackTrace özelliğinin sonuçlarından farklı olarak, sonuçlar gizlemeden etkilenmez.
Arayan bilgilerini denetlemek veya arayan bilgilerini gizlemek için isteğe bağlı bağımsız değişkenleri açıkça sağlayabilirsiniz.
Üye Adları
Özniteliği, üye adını çağrılan yönteme bağımsız bir değişken olarak belirtmekten kaçınmak amacıyla kullanabilirsiniz. Bu tekniği kullanarak, Yeniden Adlandırma Yeniden Düzenleme değerleri değiştirmediği için ortaya çıkan String sorununu önlersiniz. Bu avantaj özellikle aşağıdaki görevler için kullanışlıdır:
İzleme ve tanılama yordamlarını kullanma.
Verileri bağlarken INotifyPropertyChanged arabirimini uygulama. Bu arabirim, bir nesnenin özelliğinin, denetimin güncelleştirilmiş bilgileri görüntüleyebilmesi için özelliğin değiştirildiğini bağlı bir denetime bildirmesine olanak tanır.
CallerMemberNameözniteliği olmadan, özellik adını değişmez değer olarak belirtmeniz gerekir.
Aşağıdaki grafik, özniteliğini kullandığınızda CallerMemberName döndürülen üye adlarını gösterir.
| Aramalar şu anda gerçekleşiyor | Üye adı sonucu |
|---|---|
| Yöntem, özellik veya olay | Çağrının kaynaklandığı yöntemin, özelliğin veya olayın adı. |
| Yapıcı | ".ctor" dizesi |
| Statik oluşturucu | ".cctor" dizesi |
| Yıkıcı | "Finalize" dizesi |
| Kullanıcı tanımlı işleçler veya dönüştürmeler | Üye için oluşturulan ad( örneğin, "op_Addition"). |
| Öznitelik oluşturucu | Özniteliğin uygulandığı üyenin adı. Öznitelik bir üyenin içindeki herhangi bir öğeyse (parametre, dönüş değeri veya genel tür parametresi gibi), bu sonuç bu öğeyle ilişkili üyenin adıdır. |
| İçeren üye yok (örneğin, derleme düzeyi veya türlere uygulanan öznitelikler) | İsteğe bağlı parametrenin varsayılan değeri. |
Çağrı ifadeleri
Bir bağımsız değişken için kullanılan ifadeyi yakalamak istediğinizde System.Runtime.CompilerServices.CallerArgumentExpressionAttribute kullanırsınız. Tanılama kitaplıkları, bağımsız değişken olarak verilen ifadeler hakkında daha fazla ayrıntı sağlamak isteyebilir. Geliştiriciler, parametre adına ek olarak tanılamayı tetikleyen ifadeyi sağlayarak tanılamayı tetikleyen koşul hakkında daha fazla ayrıntıya sahiptir. Bu ek bilgiler düzeltmeyi kolaylaştırır. Aşağıdaki yöntem, CallerArgumentExpressionAttribute'yi kullanarak olması gereken True koşulunu görüntüler.
Public Shared Sub ValidateArgument(ByVal parameterName As String,
ByVal condition As Boolean,
<CallerArgumentExpression("condition")> ByVal Optional message As String? = Nothing)
If Not condition Then
Throw New ArgumentException($"Argument failed validation: <{message}>", parameterName)
End If
End Sub
Ayrıca bakınız
- Öznitelikler (Visual Basic)
- Ortak Öznitelikler (Visual Basic)
- İsteğe Bağlı Parametreler
- Programlama Kavramları (Visual Basic)