यदि मेरे पास एक वर्ग है MyProgram
, तो क्या स्ट्रिंग के रूप में " MyProgram " प्राप्त करने का एक तरीका है ?
यदि मेरे पास एक वर्ग है MyProgram
, तो क्या स्ट्रिंग के रूप में " MyProgram " प्राप्त करने का एक तरीका है ?
जवाबों:
इसे इस्तेमाल करे:
this.GetType().Name
nameof
ऑपरेटर का उपयोग कर सकते हैं ।
मैं इसे अच्छे उपाय के लिए फेंकना चाहता था। मुझे लगता है कि @micahtan पोस्ट करने का तरीका पसंद किया जाता है।
typeof(MyProgram).Name
nameof(MyProgram)
।
हालांकि माइकाटान का जवाब अच्छा है, यह स्थिर तरीके से काम नहीं करेगा। यदि आप वर्तमान प्रकार का नाम पुनः प्राप्त करना चाहते हैं, तो यह हर जगह काम करना चाहिए:
string className = MethodBase.GetCurrentMethod().DeclaringType.Name;
संदर्भ के लिए, यदि आपके पास एक प्रकार है जो दूसरे से विरासत में मिला है तो आप इसका उपयोग भी कर सकते हैं
this.GetType().BaseType.Name
यदि आपको व्युत्पन्न वर्गों में इसकी आवश्यकता है, तो आप उस कोड को आधार वर्ग में रख सकते हैं:
protected string GetThisClassName() { return this.GetType().Name; }
फिर, आप व्युत्पन्न वर्ग में नाम तक पहुँच सकते हैं। व्युत्पन्न वर्ग का नाम। बेशक, नए कीवर्ड "नेमॉफ़" का उपयोग करते समय, इस तरह के कार्यों की आवश्यकता नहीं होगी।
इसके अलावा आप इसे परिभाषित कर सकते हैं:
public static class Extension
{
public static string NameOf(this object o)
{
return o.GetType().Name;
}
}
और फिर इस तरह का उपयोग करें:
public class MyProgram
{
string thisClassName;
public MyProgram()
{
this.thisClassName = this.NameOf();
}
}
इसे इस्तेमाल करो
माना कि आवेदन Test.exe चल रहा है और समारोह है foo () में Form1 [मूल रूप से यह है वर्ग Form1 ], तो कोड के ऊपर प्रतिक्रिया नीचे उत्पन्न होगा।
string s1 = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name;
यह वापस आ जाएगी।
s1 = "TEST.form1"
फ़ंक्शन नाम के लिए:
string s1 = System.Reflection.MethodBase.GetCurrentMethod().Name;
वापस होगा
s1 = foo
ध्यान दें कि आप इसका उपयोग अपवाद उपयोग में करना चाहते हैं:
catch (Exception ex)
{
MessageBox.Show(ex.StackTrace );
}
[Nullable(2)]
इसलिए आपको एक चेतावनी मिलती है जब अशक्त जाँच सक्रिय होती है।
this
छोड़ा जा सकता है। आपको वर्तमान वर्ग का नाम प्राप्त करने की आवश्यकता है:
GetType().Name
Asp.net की वर्तमान श्रेणी का नाम प्राप्त करें
string CurrentClass = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name.ToString();
[Nullable(2)]
इसलिए आपको एक चेतावनी मिलती है जब अशक्त जाँच सक्रिय होती है।