// абстракция static void Main(string[] args) { StrengthHero strengthHero = new StrengthHero(); AgilityHero agilityHero = new AgilityHero(); IntelligenceHero intelligenceHero = new IntelligenceHero(); AntiMag antiCreep = new AntiMag(); Hero hero = antiCreep; CrystalMaiden cm = new CrystalMaiden(); Axe axe = new Axe(); }
static void Main() { #region Polymorphism ? Console.WriteLine("\nPolymorphism ?\n"); //Polymorphism? //Ex024_Inheritance.Strength.Axe //Ex024_Inheritance.Intelligence.CrystalMaiden //Ex024_Inheritance.Agility.BountyHunter //Axe hero = new Axe(); Console.WriteLine(hero.GetType()); //CrystalMaiden hero = new CrystalMaiden(); Console.WriteLine(hero.GetType()); //BountyHunter hero = new BountyHunter(); Console.WriteLine(hero.GetType()); Hero hero = new Axe(); Console.WriteLine(hero.GetType()); hero = new CrystalMaiden(); Console.WriteLine(hero.GetType()); hero = new BountyHunter(); Console.WriteLine(hero.GetType()); Console.ReadLine(); #endregion #region TeamCreater Console.WriteLine("\nTeamCreater\n"); //TeamCreater //count = (3, 3, 4) //Ex024_Inheritance.Intelligence.Bane //Ex024_Inheritance.Intelligence.CrystalMaiden //Ex024_Inheritance.Intelligence.Chen //Ex024_Inheritance.Strength.Alchemist //Ex024_Inheritance.Strength.Beastmaster //Ex024_Inheritance.Strength.Alchemist //Ex024_Inheritance.Agility.Bloodseeker //Ex024_Inheritance.Agility.BountyHunter //Ex024_Inheritance.Agility.Broodmother //Ex024_Inheritance.Agility.ArcWaeden List <IntelligenceHero> intelligences = new List <IntelligenceHero>(); List <StrengthHero> strengths = new List <StrengthHero>(); List <AgilityHero> agilitys = new List <AgilityHero>(); var count = GetCount(); Console.WriteLine($"count = {count}"); for (int i = 0; i < count.IntelligenceCount; i++) { intelligences.Add(GetIntelligenceHero()); Console.WriteLine(intelligences[i]); } for (int i = 0; i < count.StrengthCount; i++) { strengths.Add(GetStrengthHero()); Console.WriteLine(strengths[i]); } for (int i = 0; i < count.AgilityCount; i++) { agilitys.Add(GetAgilityHero()); Console.WriteLine(agilitys[i]); } Console.ReadLine(); #endregion #region ToDo Console.WriteLine("\nToDo\n"); //ToDo //Ex024_Inheritance.Strength.Beastmaster //Ex024_Inheritance.Agility.Bloodseeker //Ex024_Inheritance.Intelligence.Chen //Ex024_Inheritance.Strength.Beastmaster //Ex024_Inheritance.Strength.Abaddon //Ex024_Inheritance.Strength.Brewmaster //Ex024_Inheritance.Intelligence.Bane //Ex024_Inheritance.Strength.Beastmaster //Ex024_Inheritance.Intelligence.Batrider //Ex024_Inheritance.Strength.Beastmaster List <Hero> heroes = new(); for (int i = 0; i < 10; i++) { heroes.Add(GetHero()); Console.WriteLine(heroes[i].GetType()); } Console.ReadLine(); #endregion #region Reflection Console.WriteLine("\nReflection\n"); //Reflection //Ex024_Inheritance.Intelligence.Chen // Было GetHero(); // Стало GetHeroThroughReflection(); WriteLine(GetHeroThroughReflection().GetType()); Console.ReadLine(); #endregion #region Remark Console.WriteLine("\nRemark\n"); //58225482 //58225482 //58225482 //58225482 //antiMag == agilityHero - True //agilityHero == baseHero - True //baseHero == am - True AntiMag antiMag = new(); Console.WriteLine(antiMag.GetHashCode()); AgilityHero agilityHero = antiMag; Console.WriteLine(antiMag.GetHashCode()); Hero baseHero = agilityHero; Console.WriteLine(antiMag.GetHashCode()); AntiMag am = (AntiMag)baseHero; Console.WriteLine(am.GetHashCode()); Console.WriteLine($"antiMag == agilityHero - {antiMag == agilityHero}"); Console.WriteLine($"agilityHero == baseHero - {agilityHero == baseHero}"); Console.WriteLine($"baseHero == am - {baseHero == am}"); Console.ReadLine(); #endregion }