有没有办法在函数中操作C#中的程序流?
我的意思是在C ++中可以放置像
这样的东西#define Verify(x) if(x==null) return;
或
#define Verify(x) if(x==null) goto _exit;
进入宏并将Verify(x)置于函数的任何位置。在此示例中,如果满足某些条件,宏可以退出该函数。 但是在C#中,你可以将验证放到一个函数中,函数可能是内联的,但你总是要以
的形式写一些东西。if (Verify(x)) return;
。所以问题是,除了异常之外还有什么方法可以将调用函数的控制流作为被调用的函数来操作吗?
答案 0 :(得分:3)
通常的方法是在方法体的开头安装一个保护条款。您可以在本文中找到有关我们为什么需要保护条款以及如何实施它们的完整说明:Why do We Need Guard Clauses?
我还举办过关于防御性编码的网络研讨会,你可以在这里找到录制的会话:Advanced Defensive Coding Techniques