Хорошо, допустим, у меня есть класс контейнера данных
public class DataContainer {
public Person person;
}
, и мы уже создаем экземпляр этого класса
DataContainer dataContainer = new DataContainer();
dataContainer.Person = new Person("Smith");
, и мы пытаемся передать его в метод что мы хотим иметь возможность только читать контейнер без изменений
public void ExampleMethod(in DataContainer dataContainer){
dataConainer.Person.name = "blablabla" //we don't want to be able to do that
dataContainer = new DataContainer(); // this is not possible because of in keyword
}
Я попробовал ключевое слово in, но оно не влияет на запрет изменений в контейнере ...
PS: преобразование контейнера в структуру - это не решение, потому что оно станет неизменным