void程序中的return语句是否有任何意义。
我有一个使用某些COM Interop的场景,运行时行为很奇怪。当我使用Visual Studio进行调试时,代码执行正常,但是当从exe执行时它行为不正常。在任何情况下都不会抛出异常。 我的代码是这样的。
private void function1()
{
DialogResult dialogResult = MessageBox.Show(messageInfo.DisplayText, GlobalData.MessageCaption, MessageBoxButtons.OKCancel);
if (dialogResult == DialogResult.OK)
{
minSize = (int)numericUpdown.Value;
return;
}
else
{
minSize = sampleSize;
return; //This is the return statement in question
}
}
当我在else块中添加一个return语句时,问题得到解决[返回语句后面没有行。]。我通过在有和没有return语句的情况下反复测试这个问题来证实,现在我对这到底发生了什么感到困惑。
这是否对应用程序的行为方式有任何改变。
答案 0 :(得分:2)
该方法将返回,任何剩余的代码将不会执行。这取决于一些事情,比如返回是在using还是try-catch块中 - 因为即使你明确地返回也会运行某些东西。
Void返回类型无法返回任何内容。
至于你的奇怪问题,假设代码完全是你发布的,那么返回将没有什么特别之处。我只能猜测你没有发布所有代码,这意味着返回可能正在做某事(如停止运行duff代码)。
答案 1 :(得分:0)
在调试时以及在System.DirectoryServices中使用COM进行非debbuging时,我也注意到了不同的行为。
不同的行为似乎与COM有关。
恕我直言,它是编译器或运行时错误。