Csharp Inheritance
I wanted to know if you can check if an inherited class is an instance of its parent class. The following little example illustrates how to do it:
using System; using System.Collections.Generic; using System.Text; namespace Arv { public interface IFordon { } public interface IMotorFordon : IFordon { } public class TvåHjuling { } public class MotorCykel : TvåHjuling, IMotorFordon { } public class MotorCykelMedSidoVagn : MotorCykel { } class Arv { static void Main(string[] args) { MotorCykelMedSidoVagn Harley = new MotorCykelMedSidoVagn(); Console.WriteLine("'Harley is a IMotorFordon' is {0}.", Harley.GetType() == typeof(IMotorFordon)); Console.WriteLine("'Harley is a TvåHjuling' is {0}.", Harley.GetType() == typeof(TvåHjuling)); Console.WriteLine("'Harley is a MotorCykel' is {0}.", Harley.GetType() == typeof(MotorCykel)); Console.WriteLine("'MotorCykelMedSidoVagn is a subclass of IMotorFordon' is {0}.", Harley.GetType().IsSubclassOf(typeof(IMotorFordon))); Console.WriteLine("'MotorCykelMedSidoVagn is a subclass of TvåHjuling' is {0}.", Harley.GetType().IsSubclassOf(typeof(TvåHjuling))); Console.WriteLine("'MotorCykelMedSidoVagn is a subclass of MotorCykel' is {0}.", Harley.GetType().IsSubclassOf(typeof(MotorCykel))); foreach (System.Type T in Harley.GetType().GetInterfaces()) Console.WriteLine("Harley implements the interface '{0}'", T); } } }
The output should be something like this:
'Harley is a IMotorFordon' is False. 'Harley is a TvåHjuling' is False. 'Harley is a MotorCykel' is False. 'MotorCykelMedSidoVagn is a subclass of IMotorFordon' is False. 'MotorCykelMedSidoVagn is a subclass of TvåHjuling' is True. 'MotorCykelMedSidoVagn is a subclass of MotorCykel' is True. Harley implements the interface 'Arv.IMotorFordon' Harley implements the interface 'Arv.IFordon'
This page is a member of Kategori Programmering.