错误消息:CA1001 - 错误消息:表单创建 IDiposable 类型
Error Message: CA1001 - Error Message: Form Creates IDiposable Types
Visual Studio 抱怨我关闭和处理表格的方式(在我完成后)。
我这样做的方式; Visual Studio 告诉我:
即:"Form1 Creates IDisposable Types".
我试过使用 using 语句实现,但是表单不会保持打开状态,所有内容都在循环结束时处理。
即使有“使用”声明; visual studio 报告相同的消息。
如何正确实施?
示例使用:
private void OpenForm1()
{
// Create a new instance of Form1
using (var f1 = new Form1())
{
// Some Code Here
}
// Form1 Instance Gets Disposed at the End of the Loop Above.
}
我当前(适度)打开和关闭表单方法的示例:
小提示:我正在从一个 class 中调用这个方法,它将控制:
- 打开和关闭表单
通过表单传递的数据
private Form1 f1;
public void OpenForm1(bool _Open, int _LocX, int _LocY)
{
try
{
switch (_Open)
{
case true:
// Close & Dispose "Form1" (if Opened)
if (f1 != null) { OpenForm1(false, 0, 0); }
// Re-Open Form1 with New Data (if Closed)
if (f1 == null) { f1 = new Form1(_LocX, _LocY); }
f1.Show();
break;
case false:
if (f1 != null) { f1.Close(); f1.Dispose(); f1 = null; }
break;
}
}
catch (InvalidOperationException _IOE) { MessageBox.Show(_IOE.Message); }
}
只有当您的 using 块超出范围时变量的生命周期结束时,您才使用 using
。您希望您的表单在超出 using
语句范围的位置继续存在,因此您不应该在那里使用 using
块。
Form.Close
无论如何都会调用 Dispose
,所以您在这里不必担心,因为关闭表单将处理资源清理。您唯一需要在表单上调用 Dispose
的情况是您从未调用过 Show
.
Visual Studio 抱怨我关闭和处理表格的方式(在我完成后)。 我这样做的方式; Visual Studio 告诉我:
即:"Form1 Creates IDisposable Types".
我试过使用 using 语句实现,但是表单不会保持打开状态,所有内容都在循环结束时处理。 即使有“使用”声明; visual studio 报告相同的消息。
如何正确实施?
示例使用:
private void OpenForm1()
{
// Create a new instance of Form1
using (var f1 = new Form1())
{
// Some Code Here
}
// Form1 Instance Gets Disposed at the End of the Loop Above.
}
我当前(适度)打开和关闭表单方法的示例:
小提示:我正在从一个 class 中调用这个方法,它将控制:
- 打开和关闭表单
通过表单传递的数据
private Form1 f1; public void OpenForm1(bool _Open, int _LocX, int _LocY) { try { switch (_Open) { case true: // Close & Dispose "Form1" (if Opened) if (f1 != null) { OpenForm1(false, 0, 0); } // Re-Open Form1 with New Data (if Closed) if (f1 == null) { f1 = new Form1(_LocX, _LocY); } f1.Show(); break; case false: if (f1 != null) { f1.Close(); f1.Dispose(); f1 = null; } break; } } catch (InvalidOperationException _IOE) { MessageBox.Show(_IOE.Message); } }
只有当您的 using 块超出范围时变量的生命周期结束时,您才使用 using
。您希望您的表单在超出 using
语句范围的位置继续存在,因此您不应该在那里使用 using
块。
Form.Close
无论如何都会调用 Dispose
,所以您在这里不必担心,因为关闭表单将处理资源清理。您唯一需要在表单上调用 Dispose
的情况是您从未调用过 Show
.