質問: new Class(); といったように宣言すると思うのですが、 newを使わずにクラスの宣言は可能なのでしょうか? 今回疑問に思ったのがデータクラスをFormで宣言し、そのFormをForm2で宣言した際に 変数が初期化されてしまっていたのでもしそれを回避する方法があればご教授いただきたいです。 よろしくお願いします。 ### 発生している問題・エラーメッセージ ``` エラーメッセージ ``` ### 該当のソースコード ``` ここにご自身が実行したソースコードを書いてください ``` ### 試したこと 課題に対してアプローチしたことを記載してください ### 補足情報(言語/FW/ツール等のバージョンなど VS2015EX
回答: こんにちは。 まず、`Class AAA = new Class();`というのはおまじないではないです。 newは文字通り「新しいxxxを作成する」という宣言です。newを書く度に、Classのクラス定義を元にした新しいオブジェクトが生成されるわけです。 つまり、質問文にある「そのFormをForm2で宣言」というのは、「新しいFormを(Form2内で)作成している」ということなので、変数は初期化されているわけではなく、最初のFormとForm2内のFormは別の実体なので、変数なども完全に独立しているだけです。 Form2からFormを参照したい場合は、元のFormそのものをForm2に与えるようにして下さい。