防止未分配的对象,这是一个糟糕的设计考虑因素吗?

DRa*_*app 2 c# wpf resharper code-design

在我的WPF应用程序中,我有几个基于记录的给定ID的地方,我调用一个新表单作为模态显示以查看详细信息.然后它会关闭并返回到预期的调用源.这一切都没有问题.

为了简化编码,我在显示的表单的构造函数的末尾添加了一个"ShowDialog()"调用.这可以防止每个地方需要这种形式被称为需要...

var myModalForm = new MyModalForm(someIdToDisplay);
myModalForm.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

简化,我只需要用Id创建模态表单,例如

new MyModalForm(someIdToDisplay);
Run Code Online (Sandbox Code Playgroud)

但是通过ReSharper检查器,它返回"由'new'表达式创建的可能未分配的对象".

我知道垃圾收集器会在它完成后得到它,但作为一个模态形式,一旦完成,我不需要用它做任何其他事情.所以,这是不好的,还是好的,只是忽略这种警告的考虑.其他一切在应用程序中工作正常.

Jon*_*eet 7

为了简化编码,我在显示的表单的构造函数的末尾添加了一个"ShowDialog()"调用.

对我个人来说,这听起来像个丑陋的设计.构造函数旨在返回一个可用的对象 - 理想情况下,这是他们应该做的所有事情.

我会将其更改为静态方法MyModalForm:

public static void ShowForId(int id)
{
    var form = new MyModalForm(id);
    form.ShowDialog();
}
Run Code Online (Sandbox Code Playgroud)

然后你的调用代码可以是:

MyModalForm.ShowForId(someIdToDisplay);
Run Code Online (Sandbox Code Playgroud)

现在很清楚它正在尝试做什么:目的是展示一个表单,而不仅仅是创建它.