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

prevent unassigned objects, any reason this is a bad design consideration?

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

为了简化编码,我在显示的表单构造函数的末尾放置了一个 "ShowDialog()" 调用。这防止了调用此表单的每个地方都需要类似..

var myModalForm = new MyModalForm(someIdToDisplay);
myModalForm.ShowDialog();

简化了,我只需要创建带有Id的模态表单,例如

new MyModalForm(someIdToDisplay);

但是通过 ReSharper 检查器,它返回 "Possible unassigned object created by 'new' expression"。

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

To keep this simplified in coding, I put a "ShowDialog()" call at the end of the constructor of the form being displayed.

就我个人而言,这听起来像是一个丑陋的设计。构造函数旨在 return 一个可用的对象 - 理想情况下,它们应该 all

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

public static void ShowForId(int id)
{
    var form = new MyModalForm(id);
    form.ShowDialog();
}

那么您的调用代码可以是:

MyModalForm.ShowForId(someIdToDisplay);

现在很清楚它要做什么:目的是显示一个表单,而不仅仅是 创建 它。