|
分類:[C#]
親フォームにて宣言した構造体があります。 public struct StructTest { public string strTest; public bool bTest; public int nTest; } public StructTest[] m_structTest = new StructTest[10];
子フォームからの親で宣言した構造体を編集したいため、親にてフォームインスタンスを宣言し、 下記のように子フォームを呼び出しております。
private static FormParent m_InstFormParent; //親フォームインスタンス private FormChild m_InstFormChild; //子フォームインスタンス
//プロパティ public static FormParent PropFormParentInst { get { return m_InstFormParent; } set { m_InstFormParent= value; } } //インスタンス保持 m_InstFormParent= this;
//子フォーム表示 - モーダル m_InstFormChild = new FormChild(); m_InstFormChild.ShowDialog(this);
子フォームにて構造体の配列数を削除する処理があり、親フォームで宣言した構造体の配列を、 下記のようにリサイズしております。 Array.Resize<名前空間.FormParent.StructTest> (ref FormParent.PropFormParentInst.m_structTest, 9);
コンパイルは通るのですが、下記のような警告が出ており、理解出来ないままでおります。 『参照マーシャリング クラスのフィールドであるため、'名前空間.FormParent.m_structTest' を ref または out として渡す、またはそのアドレスを取得すると、 ランタイム例外が発生する可能性があります。』
このような構造体の使い方は間違っておりますでしょうか?
複数フォームで同じインスタンスの構造体をどのフォームからでも値の編集、リサイズなどを行う場合、 どのように実装するべきか御教授頂ければ幸いです。
|