Работа с классом, подразделы - C#

Узнай цену своей работы

Формулировка задачи:

Создаю класс для работы с памятью:
    class Engine
    {
            public static string Name
            {
                get
                {
                    return Name;
                }
 
                private set
                {
                    Name = value;
                }
            }
            public static int Id
            {
                get
                {
                    return Id;
                }
 
                private set
                {
                    Id = value;
                }
            }
            public static IntPtr Handle
            {
                get
                {
                    return Handle;
                }
 
                private set
                {
                    Handle = value;
                }
            }
 
        public void Dispose(bool dispose) //помогите правильно создать метод
        {
            if(dispose == true)
            {
                CloseHandle(Engine.Handle); //
            } else { }
        }
        public Engine(string name)
        {
            Name = name;
            if (name != null) Id = GetProcessIdByName(name); else { throw new System.ArgumentNullException("name cannot be null", Name); } //не уверен
            if(Id != 0) { throw new System.ArgumentOutOfRangeException("process isnt exist", Name); }
        }
    }
Инициализирую так:
Engine a = new Engine("CrackMe");
но, после этого я бы хотел иметь доступ к переменным(только к чтению), чтоб это выглядело вот так:
IntPtr = a.Settings.Handle; // Чтоб так с каждой переменной (Id, Handle, Name)
Вопрос, как мне сделать такой подкласс? (или не подкласс, сам не знаю, что нужно использовать)
up up, неужели никто не знает?

Решение задачи: «Работа с классом, подразделы»

textual
Листинг программы
class Engine
    {
        private const int DefaultId = 1;
        private const string DefaultName = "Foo";
        private const int DefaultHandle = 1;
 
 
        public Settings Settings { get; private set; }
 
        public Engine()
        {
            Settings = new Settings(DefaultId,DefaultName,DefaultHandle);
        }
 
        public void ChangeSettingsId(int newId)
        {
             Settings = new Settings(newId, Settings.Name, Settings.Handle);
        }
 
        public void ChangeSettingsName(string newName)
        {
            if (string.IsNullOrEmpty(newName)) throw new ArgumentException(nameof(newName));
            Settings = new Settings(Settings.Id, newName, Settings.Handle);
        }
 
 
        public void ChangeSettingsHandle(int newHandle)
        {
            Settings = new Settings(Settings.Id, Settings.Name, Settings.Handle);
        }
    }
 
class Settings
    {
        public int Id { get; }
        public string Name { get; }
        public int Handle { get; }
 
        public Settings(int id, string name, int handle)
        {
            Id = id;
            Name = name;
            Handle = handle;
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5