Типи C# можна визначати в межах області видимості класу або структури. Зовнішній тип відіграє роль своєрідного простору імен. Доступ до типу відбувається через зовнішній тип за допомогою синтаксису з крапкою.
class Outer
{
public interface IInner {}
public enum EInner {}
public class CInner {}
public struct SInner {}
}
var outer = new Outer();
var inner = new Outer.CInner();
Ми можемо задавати рівні доступу для вкладених типів.
Приватні члени зовнішнього типу перебувають в області видимості членів вкладеного типу, але не навпаки.
Якісь «інші» розробники працювали над проєктом радіокерованої машинки remote-control-competition. Нас запросили, щоб навести лад у коді.
Проведіть рефакторинг класу RemoteControlCar, щоб відокремити методи і властивості телеметрії, доступ до яких здійснюється через властивість Telemetry.
var car = new RemoteControlCar();
car.Telemetry.Calibrate();
car.Telemetry.SelfTest();
car.Telemetry.ShowSponsor("Walker Industries Inc.");
car.CurrentSponsor
// => "Walker Industries Inc."
car.Telemetry.SetSpeed(100, "cps");
car.GetSpeed()
// => "100 centimeters per second"
Telemetry
Переконайтеся, що екземпляр Telemetry не можна створити поза областю видимості машинки.
Speed
Переконайтеся, що структуру Speed не можна використовувати поза областю видимості класу RemoteControlCar.
SpeedUnits
Переконайтеся, що перелік SpeedUnits не можна використовувати поза областю видимості класу RemoteControlCar.
Зареєструйтеся на Exercism, щоб вивчати й опановувати C#, а також 62 концепції178 вправ та справжнє наставництво від людей, і все це безкоштовно.