[英]What is the significance of a return statement in a procedure of void type
無效過程中的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語句的問題來確認,現在我對確切發生的事情感到困惑。
這是否改變了應用程序的行為方式。
該方法將返回,任何剩余的代碼將不會執行。 這取決於一些事情,比如返回是在using還是try-catch塊中 - 因為即使你明確地返回也會運行某些事情。
Void返回類型只是不能返回任何東西。
至於您遇到的奇怪問題,假設代碼完全是您發布的內容,那么返回將沒有什么特別的。 我只能猜測你沒有發布所有代碼,這意味着返回可能正在做某事(如停止運行的duff代碼)。
我還注意到在System.DirectoryServices中進行調試和進行非調試(與COM一起進行)時的不同行為。
不同的行為似乎與COM有關。
恕我直言,它是編譯器或運行時錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.