Share via


Arayan Bilgileri (Visual Basic)

Arayan Bilgisi özniteliklerini kullanarak bir yöntemin arayanı hakkında bilgi edinebilirsiniz. Kaynak kodunun dosya yolunu, kaynak kodundaki satır numarasını ve arayanın üye adını alabilirsiniz. Bu bilgiler, tanılama araçlarının izlenmesine, oluşturulmasına ve bu araçlarda hata ayıklanmasına yardımcı olur.

Bu bilgileri elde etmek için her biri varsayılan değere sahip isteğe bağlı parametrelere uygulanan öznitelikler kullanabilirsiniz. Aşağıdaki tabloda, ad alanında System.Runtime.CompilerServices tanımlanan Arayan Bilgisi öznitelikleri listelenir:

Öznitelik Açıklama Tür
CallerFilePathAttribute Kaynak dosyasının arayanı içeren tam yolu. Bu, derleme zamanındaki dosya yoludur. String
CallerLineNumberAttribute Yöntemin çağrıldığı kaynak dosyadaki satır numarası. Integer
CallerMemberNameAttribute Arayanın yöntemi veya özellik adı. Bu konunun devamında yer alan Ü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ın Bilgisi özniteliklerinin nasıl kullanılacağı gösterilmiştir. Yöntemine yapılan TraceMessage her çağrıda, çağıran bilgileri isteğe bağlı parametrelere bağımsız değişken olarak değiştirilir.

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

Her isteğe bağlı 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, bir parametreyi isteğe bağlı hale getirmez. Bunun yerine, bağımsız değişken atlandığında geçirilen varsayılan değeri etkilerler.

Arayan Bilgisi değerleri, derleme zamanında Ara Dile (IL) değişmez değerler olarak verilir. Özel durumlar için özelliğinin StackTrace sonuçlarından farklı olarak, sonuçlar karartmadan etkilenmez.

Arayan bilgisini denetlemek veya gizlemek için isteğe bağlı bağımsız değişkenleri açıkça sağlayabilirsiniz.

Üye Adları

Üye adını çağrılan yöntemin CallerMemberName bağımsız String değişkeni olarak belirtmekten kaçınmak için özniteliğini kullanabilirsiniz. Bu tekniği kullanarak, Yeniden Düzenlemeyi Yeniden Adlandır'ın değerleri değiştirmemesi String sorununu önlersiniz. Bu, özellikle aşağıdaki görevler için yararlı olur:

  • İzleme ve tanılama yordamlarını kullanma.

  • Verileri bağlarken arabirimi uygulama INotifyPropertyChanged . Bu arabirim, bir nesnenin özelliğinin bağlama denetimine özelliğin değiştirildiğini bildirmesini ve böylece denetimin güncelleştirilmiş bilgileri görüntüleyebilmesini sağlar. 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.

Çağrının oluştuğu yer Üye adı sonucu
Yöntem, özellik veya olay Yöntemin, özelliğin veya aramanın kaynaklandığı olayın adı.
Oluşturucu ".ctor" dizesi
Statik oluşturucu ".cctor" dizesi
Yok edici "Finalize" dizesi
Kullanıcı tanımlı işleçler veya dönüştürmeler Üye için oluşturulan "op_Addition" gibi bir ad.
Öznitelik oluşturucu Özniteliğin uygulandığı üyenin adı. Öznitelik bir üye içerisindeki herhangi bir öğeyse (parametre, dönüş değeri veya genel tür parametresi gibi), bu sonuç bu öğeyle ilişkili öğenin 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ğıran ifadeleri

Bir bağımsız değişken için kullanılan ifadeyi yakalamak istediğinizde öğesini kullanırsınız System.Runtime.CompilerServices.CallerArgumentExpressionAttribute . Tanılama kitaplıkları, bağımsız değişken olarak geçirilen 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, olması gereken Truekoşulu görüntülemek için öğesini CallerArgumentExpressionAttribute kullanır:

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 bkz.