|
|
1
538
这取决于你的目的:
就我个人而言,根据具体情况,我会同时使用: 条件(“调试”)示例: 我使用它是为了不必在以后的发布过程中返回并编辑代码,但是在调试过程中,我希望确保没有任何错别字。此函数检查在我的inotifyPropertiesChanged资料中尝试使用属性名时是否正确键入属性名。
您真的不想使用
对比:
#如果调试示例: 我在尝试为WCF通信设置不同的绑定时使用此方法。
在第一个示例中,代码都存在,但只有在启用Debug之后才会被忽略。在第二个示例中,const端点设置为“localhost”或“basichttpbinding”,这取决于是否设置了debug。
更新:我正在更新这个答案,以澄清一个重要和棘手的问题。如果你选择使用
mylibrary.dll文件
当库以发布模式编译时(即没有调试符号),它将永远调用
|
|
|
2
61
好吧,值得注意的是,它们根本就不是一回事。
如果未定义调试符号,则在第一种情况下,
如果代码及其所有调用方都在同一程序集中,则此差异为
较少的
重要的是-但这意味着在第一个案例中
也
需要
个人而言,我建议采用第二种方法——但你需要在头脑中清楚地记住它们之间的区别。 |
|
|
3
42
我相信有很多人会不同意我的观点,但是作为一个建筑工人,我经常听到“但是它在我的机器上工作!”我的观点是,你也不应该使用它。如果您确实需要一些东西来进行测试和调试,请找出一种方法使该可测试性与实际的生产代码分离。 抽象单元测试中的模拟场景,为要测试的一次性场景制作一次性版本的东西,但不要将调试测试放入为生产版本测试和编写的二进制代码中。这些调试测试只是从开发人员那里隐藏可能的错误,所以直到稍后的过程中才会发现它们。 |
|
|
4
12
这个也很有用:
|
|
|
5
9
在第一个例子中,
在第一个示例中,您必须将
在第二个示例中,调用
如果要忽略调用并节省被调用方的空间,可以使用以下两种技术的组合:
|
|
|
6
4
假设你的代码也有一个
假设
|
|
|
7
2
我有一个SOAP WebService扩展,可以使用自定义的[traceExtension]记录网络流量。我只在调试版本时使用它,在发布版本中省略它。使用if debug包装[traceextension]属性,从而将其从发布版本中移除。
|
|
|
8
0
通常,您需要在program.cs中使用它,在该程序中,您要决定对非调试代码运行调试,而在Windows服务中,这一点太多了。所以我创建了一个只读字段isdebugmode,并在静态构造函数中设置它的值,如下所示。
|