Читать книгу 📗 "Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю"
После создания проекта и решения вы можете открыть его в Visual Studio (или Visual Studio Code), чтобы приступить к построению классов. Открыв решение, удалите автоматически сгенерированный файл
Class1.csEngineStateEnumMusicMediaEnumMusicMediaEnum.csEngineStateEnum.cs// MusicMediaEnum.csnamespace CarLibrary{ // Тип музыкального проигрывателя, установленный в данном автомобиле. public enum MusicMediaEnum { MusicCd, MusicTape, MusicRadio, MusicMp3 }}// EngineStateEnum.csnamespace CarLibrary{ // Представляет состояние двигателя. public enum EngineStateEnum { EngineAlive, EngineDead }}Далее создайте абстрактный базовый класс по имени
CarCarTurboBoost()EngineStateCar.csnamespace CarLibrary{ // Абстрактный базовый класс в иерархии. public abstract class Car { public string PetName {get; set;} public int CurrentSpeed {get; set;} public int MaxSpeed {get; set;} protected EngineStateEnum State = EngineStateEnum.EngineAlive; public EngineStateEnum EngineState => State; public abstract void TurboBoost(); protected Car(){} protected Car(string name, int maxSpeed, int currentSpeed) { PetName = name; MaxSpeed = maxSpeed; CurrentSpeed = currentSpeed; } }}Теперь предположим, что есть два непосредственных потомка класса
CarMiniVanSportsCarTurboBoost()MiniVan.csSportsCar.cs// SportsCar.csusing System;namespace CarLibrary{ public class SportsCar : Car { public SportsCar(){ } public SportsCar( string name, int maxSpeed, int currentSpeed) : base (name, maxSpeed, currentSpeed){ } public override void TurboBoost() { Console.WriteLine("Ramming speed! Faster is better..."); } }}// MiniVan.csusing System;namespace CarLibrary{ public class MiniVan : Car { public MiniVan(){ } public MiniVan( string name, int maxSpeed, int currentSpeed) : base (name, maxSpeed, currentSpeed){ } public override void TurboBoost() { // Минивэны имеют плохие возможности ускорения! State = EngineStateEnum.EngineDead; Console.WriteLine("Eek! Your engine block exploded!"); } }}Исследование манифеста
Перед использованием
CarLibrary.dllildasm.exeildasm.exe