0

这可能看起来很愚蠢,但我正在处理遗留代码(.Net4,C#),其中包含:

bool retVal = CheckSomething();

...

private bool CheckSomething()
{
    if(whatever) return false;
    else
        {
            DoSomething();
            return true;
        }
}

private void DoSomething()
{
    ...
    System.Windows.Forms.Application.Restart();
    System.Windows.Application.Current.Shutdown();
}

对我来说这没有任何意义,因为重启应该导致应用程序从入口点开始,而不是从它停止的地方开始。我对吗?

编辑
CheckSomething()执行以下操作: - 如果这不是 ClickOnce 应用程序(调试) - 返回 false。- 手动检查更新。如果有更新,请执行(并重新启动)然后返回 true。如果不需要更新,返回false。

4

2 回答 2

1

尽管从逻辑的角度来看,在这里返回一些东西是没有意义的,但请注意,在语法上,方法必须returnor throw。如果删除返回,编译器会报错。您可能会争辩说,如果该函数无论如何只返回 false,则该函数可能是无效的,这取决于函数的其余部分。

于 2013-04-10T11:59:48.190 回答
0

一个问题 你将如何替换你自己正在运行的 exe 文件

我为我的应用程序做了同样的事情我检查更新如果没有更新继续

如果更新将它们下载到包含 updater.exe 的某个 tmp 文件夹,则执行 updater.exe 并关闭当前应用程序

updater.exe 将替换内容并再次启动应用程序。

这对我来说很好用

于 2013-04-10T12:17:11.990 回答