C#では、インスタンス化されたオブジェクトのタイプではなく、オブジェクトが継承されたオブジェクトであるオブジェクトの継承されたクラスタイプを取得するにはどうすればよいですか?ここでクラスを取得する継承したオブジェクトのタイプですか?
いくつかのコードです:
public class ClassA
{
public virtual void GetClassType()
{
var type = this.GetType();
Console.WriteLine(type.Name);
}
}
public class ClassB : ClassA
{
public override void GetClassType()
{
base.GetClassType();
var type = this.GetType();
Console.WriteLine(type.Name);
}
}
public class ClassC : ClassB
{
public override void GetClassType()
{
base.GetClassType();
var type = this.GetType();
Console.WriteLine(type.Name);
}
}
private void GetClassType()
{
var objectA = new ClassC();
objectA.GetClassType();
}
GetClassType方法は、コンソールに次のように出力します
クラスC はクラスC クラスC
タイプを取得することは可能ですClassの代わりに、オブジェクトのTypeの代わりに、コンソールの出力は以下のようになりますか?あなたはすでにそれを継承するクラスを知っている基本型を継承するクラスを持っている場合
にClassA ClassBの クラスC
をあなたがやろうとしているもののコード例を記載してください。 –
基本型を取得する方法を教えていますか? –
'this.GetType()。Name'の代わりに' nameof(ClassA) '、' nameof(ClassB) '、' nameof( 'クラスC) '。 –