在void类型的过程中返回语句的意义是什么

时间:2011-02-08 17:05:53

标签: c# com-interop return void

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语句的情况下反复测试这个问题来证实,现在我对这到底发生了什么感到困惑。

这是否对应用程序的行为方式有任何改变。

2 个答案:

答案 0 :(得分:2)

该方法将返回,任何剩余的代码将不会执行。这取决于一些事情,比如返回是在using还是try-catch块中 - 因为即使你明确地返回也会运行某些东西。

Void返回类型无法返回任何内容。

至于你的奇怪问题,假设代码完全是你发布的,那么返回将没有什么特别之处。我只能猜测你没有发布所有代码,这意味着返回可能正在做某事(如停止运行duff代码)。

答案 1 :(得分:0)

在调试时以及在System.DirectoryServices中使用COM进行非debbuging时,我也注意到了不同的行为。

不同的行为似乎与COM有关。

恕我直言,它是编译器或运行时错误。