0

わかりましたので、データコンテナクラスがあるとしましょう

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:コンテナを構造体に変換することは、不変になるため解決策ではありません

4

1 に答える 1