আমার যদি একটি ক্লাস বলা হয় MyProgram
, তবে " মাইপ্রগ্রাম " কে স্ট্রিং হিসাবে পুনরুদ্ধার করার কোনও উপায় আছে ?
আমার যদি একটি ক্লাস বলা হয় MyProgram
, তবে " মাইপ্রগ্রাম " কে স্ট্রিং হিসাবে পুনরুদ্ধার করার কোনও উপায় আছে ?
উত্তর:
এটা চেষ্টা কর:
this.GetType().Name
nameof
অপারেটরটি ব্যবহার করতে পারেন ।
আমি ভাল পরিমাপের জন্য এটি ফেলে দিতে চেয়েছিলাম। আমি মনে করি @ এমাহাহাতান যেভাবে পোস্ট করেছেন তা পছন্দসই।
typeof(MyProgram).Name
nameof(MyProgram)
।
সি # 6.0 এর সাহায্যে আপনি nameof
অপারেটরটি ব্যবহার করতে পারেন :
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();
}
}
এটা ব্যবহার কর
যাক যাক অ্যাপ্লিকেশন টেস্ট.এক্সি চলছে এবং ফাংশনটি ফু () এটি ফর্ম 1 এ [মূলত এটি শ্রেণি ফর্ম 1 ], তারপরে উপরের কোডটি নীচে প্রতিক্রিয়া তৈরি করবে।
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)]
যাতে নাল চেক সক্রিয় থাকাকালীন আপনি একটি সতর্কতা পান।