質問: true) { 処理 } 色々調べてみるとrefやoutを使うと出てきたのですが、合っているのかも、実際の使い方がよくわからず...。 何卒よろしくお願いいたします。
回答: こんにちは。 そのmTestがクラスA自体に属するのか、クラスAのインスタンスに属するのかについての検討がまず必要です。 前者の場合は、クラスAの全てのインスタンスで同じmTestが共有されます。 ``` A a0 = new A(); A a1 = new A(); ``` とした時、a0.mTest[0,0]やa1.mTest[0,0]の形式ではアクセスできません。 A.mTest[0,0]でアクセスしますので、a0, a1のそれぞれに別の値を設定することができません。 そして、このケースではプリフィクスとしてmを使うことは危険かもしれません。mはmemberのmでインスタンスに属する変数を意味することが多いからです。 後者の場合は、クラスAのインスタンス毎にmTestが生成されます。 ``` A a0 = new A(); A a1 = new A(); ``` とした時、a0.mTest[0,0]とa1.mTest[0,0]が異なる値を保持できます。 解決方法ですが、前者の場合は既にkunimatsuさんが回答されている通りです。 後者の場合は、クラスBでアクセスしたいクラスAのインスタンスをクラスBへ渡します。 方法は色々あり、クラスB側もクラスBのstatic関数でアクセスしたいのか、クラスBのインスタンス関数でアクセスしたいのかで、また異なります。 ですので、クラスBについても同様にクラスB自体がアクセスしたいのか、クラスBのインスタンスがアクセスしたいのか、定めて下さい。