看这个吧,
http://www.codeproject.com/csharp/designbycontract.asp?target=obsolete

解决方案 »

  1.   

    我想你说的应该就是这个Obsolete1)忽略warning并不是一个好的编程习惯。warning并不会阻止你程序的编译。去了只是自欺欺人,早发现问题可以在修改。2)Obsolete可以设置成两个级别,除了warning,还有error,这个才会阻止编译。3)如何你不想显示这个warning,可以在项目的属性中,生成-->取消显示特定的警告,把这个警告的代码CS0618添上。
      

  2.   

    TheAres(班门斧) : 你好, 我想我所需要的不是Obsolete, 我所需要的效果应该类似于如下代码:
    public static void Debug(string strMsg)
    {
    #if DEBUG
        // output ...
    #endif
    }但是使用属性与上述代码的区别是: 定义属性后根本就不再编译此方法,而这里仍然需要编译此方法...
      

  3.   

    尤其可恶的是, 如果使用Conditional,方法必须为void!!!
      

  4.   

    使用Conditional,方法 为void ?  不一定 , int 等 都可以 你可以自定义一个 Attribute ,来达到 你要的 功能, 。net自己没有---或者使用 #define debug 再在 方法前加 Conditional 属性 做判断给分吧 ~~~