在大型项目中,使用哪个更好,以及为什么:
#if DEBUG
public void SetPrivateValue(int value)
{ ... }
#endif或
[System.Diagnostics.Conditional("DEBUG")]
public void SetPrivateValue(int value)
{ ... }发布于 2010-09-24 23:43:13
在第一个示例中,如果未定义DEBUG,则SetPrivateValue将不存在于构建中;在第二个示例中,如果未定义DEBUG,则调用到SetPrivateValue将不存在于构建中。
在第一个示例中,您还必须用#if DEBUG包装所有对SetPrivateValue的调用。
在第二个示例中,将省略对SetPrivateValue的调用,但请注意,SetPrivateValue本身仍将被编译。如果您正在构建一个库,这将非常有用,这样引用您的库的应用程序仍然可以使用您的函数(如果满足条件)。
如果您想省略调用并节省被调用者的空间,您可以使用这两种技术的组合:
[System.Diagnostics.Conditional("DEBUG")]
public void SetPrivateValue(int value){
#if DEBUG
// method body here
#endif
}https://stackoverflow.com/questions/3788605
复制相似问题