Информация об изменениях

Сообщение Ограничение доступа к элементом словаря, являющемуся свойств от 26.06.2021 17:57

Изменено 23.07.2021 15:15 VladD2

Ограничение доступа к элементом словаря, являющемуся свойством класса
Добрый день,

public class MyClass {
public class MyData {
public int Parm {get;set;}
public int Calc {get;set;}
}
protected Dictionary<MyData> workData = new Dictionary<MyData>();

public void Calculate(){...}

protected void Change(){...}

public Dictionary<...> DataSource {get{...};set{...};}
}

Класс содержит в себе словарь с данными, над которыми работает. Каждый элемент содержит два свойства — Parm и Calc. С другими классами обмен данных идет, через свойство DataSource, которое так-же является словарем и так-же каждый элемент содержит свойства Parm и Calc. Данные внутреннего словаря и словаря свойства класса — совпадают.
Однако:
1. При обращении к элементам словаря из-за пределов класса MyClass — свойство Calc должно быть доступно только для чтения.
2. Изменение значения свойства Parm и / или количества элементов в словаре должно автоматически (силами класса MyClass) вызывать срабатывание метода Change.

Как такое реализовать?
Ограничение доступа к элементом словаря, являющемуся свойств
Добрый день,

public class MyClass {
    public class MyData {
        public int Parm {get;set;}
        public int Calc {get;set;}
    }
    protected Dictionary<MyData> workData = new Dictionary<MyData>();

    public void Calculate(){...}

    protected void Change(){...}

    public Dictionary<...> DataSource {get{...};set{...};}
}


Класс содержит в себе словарь с данными, над которыми работает. Каждый элемент содержит два свойства — Parm и Calc. С другими классами обмен данных идет, через свойство DataSource, которое так-же является словарем и так-же каждый элемент содержит свойства Parm и Calc. Данные внутреннего словаря и словаря свойства класса — совпадают.
Однако:
1. При обращении к элементам словаря из-за пределов класса MyClass — свойство Calc должно быть доступно только для чтения.
2. Изменение значения свойства Parm и / или количества элементов в словаре должно автоматически (силами класса MyClass) вызывать срабатывание метода Change.

Как такое реализовать?