如果我有一個從A繼承的類B和C,是否有比使用StackFrame的GetFileName()更簡單的方法(然後解析出ClassName.cs字符串)?獲取當前類名包括父類名?
如果我使用this.GetType()。名稱,它不會返回「A」當代碼在父類中執行。
示例代碼
namespace StackOverflow.Demos
{
class Program
{
public static void Main(string[] args)
{
B myClass = new C();
string containingClassName = myClass.GetContainingClassName();
Console.WriteLine(containingClassName); //should output StackOverflow.Demos.B
Console.ReadKey();
}
}
public class A { public A() { } }
public class B : A { public B() { } }
public class C : B { public C() { } }
}
很難理解你的問題沒有至少一個小例子。你能不能展示一個能夠實現你想要實現的東西的小代碼片段,並告訴我們輸出與你想要的不同? – dasblinkenlight
對不起。如果「this」是B類型,而它在父A的構造函數中運行,我想獲得類名「A」。我見過的大多數問答代碼都希望它返回「B」...但我希望它返回「A」。 – user1279437
我已經更新了我的答案,以反映您之後的情況(請參閱第一個答案)。可能比這更好的方法;現在有一個遊戲 - 但這是暫時的作品。 – JohnLBevan