Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在void函数中,return void和not return之间有什么区别吗_C#_Void_Return Type - Fatal编程技术网

C# 在void函数中,return void和not return之间有什么区别吗

C# 在void函数中,return void和not return之间有什么区别吗,c#,void,return-type,C#,Void,Return Type,情况是这样的:我在程序中调用了一个void函数,它提供了一个带有OK和Cancel的messagebox,但是这个函数是封装的。我需要知道用户点击什么 那么,我是否会劫持这个函数来了解用户的选择呢 或者我认为,当程序员编写这个函数时,当用户单击Cancel时,他必须返回一个void,而当用户单击OK时,他没有返回任何内容。我能区分这两种行为吗?返回void和不返回任何东西 我知道这似乎不可能,但这就是为什么我来问你们 谢谢“returningvoid”(您可以编写return;)与不返回任何内容

情况是这样的:我在程序中调用了一个void函数,它提供了一个带有OK和Cancel的messagebox,但是这个函数是封装的。我需要知道用户点击什么

那么,我是否会劫持这个函数来了解用户的选择呢

或者我认为,当程序员编写这个函数时,当用户单击Cancel时,他必须返回一个void,而当用户单击OK时,他没有返回任何内容。我能区分这两种行为吗?返回void和不返回任何东西

我知道这似乎不可能,但这就是为什么我来问你们

谢谢

“returningvoid”(您可以编写
return;
)与不返回任何内容完全相同


您希望返回类似于
对话框result
的内容。NET framework使用
DialogResult.OK
DialogResult.Cancel
频繁执行您想要执行的操作。

返回void的函数只有一个返回值-nothing,因此返回nothing与返回
void
之间没有区别

如果您无法更改现有函数,而它所做的只是显示一个MessageBox,那么如果我是您,我会放弃它并重新启动

您想要的是:

public DialogResult GetDialogResult(string message, string caption)
{
    return MessageBox.Show(message, caption, MessageBoxButtons.OKCancel);
}
用您想要的消息和标题调用它,您将得到
DialogResult.OK
DialogResult.Cancel

如果它不仅仅显示MessageBox,那么您唯一的选择就是检查单击OK时函数所做的任何更改,例如:

  • 如果只有在按下OK时才将记录添加到数据库,请检查该记录
  • 如果对象的状态发生更改,请检查该更改:

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

如果还有其他问题,我想你可能运气不好。

你为什么坚持要在函数上签名?请具体说明您的确切限制,我们可能会得出一个好的设计,系统的奥秘。Void,实际类型:)是的,但问题是我无法更改现有功能。。。它还实现了一些其他功能,因此我不能用消息框替换现有功能…@QiaoMeng我在答案的底部添加了另一个选项,如果这没有帮助,我认为如果不要求功能的提供者进行增强,您可能会运气不好