सी # 5 के बाद से आप, आप के लिए यह भरने के लिए संकलक प्राप्त कर सकते हैं इस तरह:
using System.Runtime.CompilerServices;
public static class Helpers
{
public static string GetCallerName([CallerMemberName] caller = null)
{
return caller;
}
}
MyMethod
में:
public static void MyMethod()
{
...
string name = Helpers.GetCallerName(); // Now name=="MyMethod"
...
}
ध्यान दें कि आप इस को गलत तरीके से उपयोग कर सकते हैं एक मूल्य में स्पष्ट रूप से गुजरकर:
string notMyName = Helpers.GetCallerName("foo"); // Now notMyName=="foo"
सी # 6 में, वहाँ भी nameof
है:
public static void MyMethod()
{
...
string name = nameof(MyMethod);
...
}
यह हुआ कि यदि विधि नाम के रूप में एक ही नाम का उपयोग कर रहे की गारंटी नहीं है, हालांकि - अगर आप nameof(SomeOtherMethod)
का उपयोग इसके बारे में "SomeOtherMethod"
के एक मूल्य होगा पाठ्यक्रम। लेकिन अगर आपको यह सही लगता है, तो MyMethod
के नाम को किसी अन्य चीज़ पर दोबारा दोहराएं, कोई भी अर्ध-सभ्य रिफैक्टरिंग टूल आपके nameof
के उपयोग को भी बदल देगा।
स्रोत
2016-06-23 06:04:15
बहुत बहुत धन्यवाद! –
सी # 6.0 से संदर्भ के लिए धन्यवाद –