एक और दृष्टिकोण का उपयोग किया जाएगा सिस्टम से CallerMemberNameAttribute। रनटाइम। कंपाइलर सेवा नामस्थान एक वैकल्पिक पैरामीटर को पॉप्युलेट करने के लिए। उदाहरण के लिए ...
Private Function GetMethodName(<System.Runtime.CompilerServices.CallerMemberName>
Optional memberName As String = Nothing) As String
Return memberName
End Function
के रूप में आप उम्मीद करेंगे समारोह लागू किया जाएगा ...
Public Sub DoSomeWork()
Dim methodName As String = GetMethodName()
Console.WriteLine($"Entered {methodName}")
' Do some work
End Sub
के बजाय सिर्फ 'विधि नाम पुन: प्राप्त करने, समारोह भी विधि का उपयोग कर सकता है कोड को और सरल बनाने के लिए नाम पुनर्प्राप्त किया गया। उदाहरण के लिए ...
Private Sub TraceEnter(
<System.Runtime.CompilerServices.CallerMemberName>
Optional memberName As String = Nothing)
Console.WriteLine($"Entered {memberName}")
End Sub
... इस तरह इस्तेमाल किया जा सकता है जो ...
Public Sub DoSomeWork()
TraceEnter()
' Do some work
End Sub
CompilerServices नाम स्थान में अन्य गुण (कम से पूरा पथ पुनः प्राप्त करने के समान फैशन में इस्तेमाल किया जा सकता संकलन समय) स्रोत फ़ाइल और/या कॉल की लाइन संख्या का। नमूना कोड के लिए CallerMemberNameAttribute दस्तावेज़ देखें।
स्रोत
2017-06-04 06:33:36
चेक इस बाहर: http://geekswithblogs.net/opiesblog/archive/2006/06/29/83654.aspx –
कि वास्तव में कैसे बुला विधि, नहीं वर्तमान में क्रियान्वित विधि का नाम पाने के लिए है। अभी भी शांत है, यद्यपि! की –
संभावित डुप्लिकेट [आप प्रतिबिंब का उपयोग कर सकते वर्तमान में क्रियान्वित विधि का नाम खोजने के लिए?] (http://stackoverflow.com/questions/44153/can-you-use-reflection-to-find-the-name-of -इस-वर्तमान-क्रियान्वित-विधि) –