簡體   English   中英

在void函數中返回void和不返回之間有什么區別嗎?

[英]is there any difference between return void and not return in a void function

下面是這種情況:我在程序中調用了一個void函數,它提供了一個帶OK和Cancel的消息框,但這個函數是封裝的。 我需要知道用戶點擊了什么。

那么無論如何我劫持這個功能來了解用戶的選擇?

或者我認為當程序員編寫此函數時,他必須在用戶單擊“取消”時返回空白,並且在用戶單擊“確定”時未返回任何內容。 這可能我可以區分這兩個動作 - 返回無效而不返回任何內容?

我知道這似乎不可能,但這就是為什么我來問stackoverflow問你們。

謝謝

返回void的函數只有一個返回 - 什么都沒有 - 因此返回任何內容或返回void之間沒有區別。

如果您無法更改現有功能,而它只顯示一個MessageBox,我會廢棄它,如果我是你,我會重新開始。

你想要的是:

public DialogResult GetDialogResult(string message, string caption)
{
    return MessageBox.Show(message, caption, MessageBoxButtons.OKCancel);
}

使用您想要的消息和標題調用它,您將獲得DialogResult.OKDialogResult.Cancel的返回

如果它不僅僅顯示MessageBox,您唯一的選擇是檢查函數在單擊OK時所做的任何更改,例如:

  • 如果僅在按下“確定”的情況下將記錄添加到數據庫,請檢查該記錄
  • 如果對象的狀態發生變化,請檢查該更改:

     OtherObject.SetValueIfOK(2); if (OtherObject.GetValue() == 2) { // OK was clicked } else { // Cancel was clicked } 

還有別的,我覺得你可能運氣不好。

“返回無效”(你寫的return; )與什么都不返回完全相同。

你想返回類似DialogResult東西。 .NET框架經常使用DialogResult.OKDialogResult.Cancel來執行您想要的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM