在C#中不需要实现方法的简单Noop语句是什么?(不过,内联/Lambda方法是可以的。)
我目前的用例:我想占用try-catch的catch-block块,这样我就可以在调试和检查异常时进入它。
我知道我可能无论如何都应该处理/记录异常,但这不是本练习的重点。
发布于 2011-08-03 18:11:58
如果你真的想要noop,那么它定义了一个不做任何事情的无名操作,然后调用它,不会导致任何事情发生:
((Action)(() => { }))();发布于 2013-12-28 04:36:14
c#中的标准空语句/noop操作是
;如下所示:
if (true)
;(relevant documentation)
这专门针对您的用例(只需在;行上放置一个断点,或以其他方式跳转到它),是最小的,并且直接由环境支持(因此,即使您正在做复杂的事情,如查看编译的源代码,您也不会有任何额外的噪音/等。以担心来自编译器/优化器/等等的问题...)--还有一个额外的好处,那就是在完成调试/推送到生产环境中时,可以发出警告,提醒您将其从代码中清除出来
发布于 2011-08-03 18:12:26
如果你想进入这个方法,你可以硬编码一个断点:
System.Diagnostics.Debugger.Break();或者,如果你没有在发布模式下编译,下面的代码行将发出IL,你可以在上面中断它:
var a = 1;您还可以编写特定于您的计算机的Debug.Break():
[Conditional("DEBUG")]
[Obsolete("Please remove me before checkin.")]
public static void Break()
{
#IF DEBUG
if (Dns.GetHostName() == "PROTECTORONE")
Debugger.Break();
#ENDIF
}请注意,由于有了[Conditional("DEBUG")],该方法在发布构建期间不会在调用站点中被调用。
https://stackoverflow.com/questions/6924782
复制相似问题