次のコードがあります。
Dictionary<string, Setup> dictSetups = new Dictionary<string, Setup>();
Setup setup1 = new Setup();
dictSetups.Add("setup1", setup1);
using (MySetupForm myForm = new MySetupForm())
{
myForm.Setup = dictSetups["setup1"];
if (myForm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
dictSetups["setup1"] = myForm.Setup;
}
}
これはMySetupForm
次のとおりです。
public partial class MySetupForm : Form
{
public MySetupForm()
{
InitializeComponent();
}
public Setup Setup { get; set; }
}
dictSetups["setup1"]
上記のコードでは、への参照を渡しMySetupForm
、フォームを表示しています。
ダイアログの結果がOK
辞書の参照を更新している場合、私の質問は、その手段を使用しなくなったときですが、MySetupForm myForm
破棄されますが、
dictSetups["setup1"]
は からの参照を保持しmyForm.Setup;
ているので、メモリ リークでしょうか?