Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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# 如何踢出一个subrutine并从现有subrutine 3或4 subrutine上的下一行开始?_C#_Visual Studio 2005 - Fatal编程技术网

C# 如何踢出一个subrutine并从现有subrutine 3或4 subrutine上的下一行开始?

C# 如何踢出一个subrutine并从现有subrutine 3或4 subrutine上的下一行开始?,c#,visual-studio-2005,C#,Visual Studio 2005,基本上我有这样的东西: 公共作废表格1\u b开始\u单击 { 空隙1 下一行 } 公共无效1 { 空隙2 } 我需要离开2号空间或更高的空间,去下一个线路点。除了在每个子例程后面放一个if语句以查看是否满足某个值,然后使用return;,这将导致一些问题,因为这是一个大型程序,这意味着对于最终使用此Void2子例程的每个可能按钮,此更改不一定会被更正,甚至在许多情况下可能会破坏它。有什么想法吗?抛出一个自定义异常,并将对Void1的调用包装在一个try…catch块中以捕获它。如果有任何其他子

基本上我有这样的东西:

公共作废表格1\u b开始\u单击 { 空隙1 下一行 }

公共无效1 { 空隙2 }


我需要离开2号空间或更高的空间,去下一个线路点。除了在每个子例程后面放一个if语句以查看是否满足某个值,然后使用return;,这将导致一些问题,因为这是一个大型程序,这意味着对于最终使用此Void2子例程的每个可能按钮,此更改不一定会被更正,甚至在许多情况下可能会破坏它。有什么想法吗?

抛出一个自定义异常,并将对Void1的调用包装在一个try…catch块中以捕获它。

如果有任何其他子例程调用它会导致问题,这难道不会仍然有问题吗?你的意思是,只有从Void1调用它,你才需要中断,而不是在其他地方?。如果您要从单个函数中寻找不同的功能,这取决于调用它的位置,那么您必须考虑重新设计。作为一般规则,函数并不意味着了解其调用者的任何信息。如果您真的需要破解它,您可以在调用Void1之前设置一个标志,并且只有在设置了该标志时才会抛出异常。当然,从Void1返回时清除该标志。