首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使过时方法的使用失败编译?

如何使过时方法的使用失败编译?
EN

Stack Overflow用户
提问于 2015-04-24 09:17:36
回答 1查看 1.8K关注 0票数 2

我希望将一个方法标记为过时,如果从任何地方调用它,也会导致编译失败。

我在这里找到了一个解决方案,How do I mark a method as Obsolete/Deprecated?

一个答案暗示了这个语法,说布尔修饰符将达到我想要的效果(编译失败)。

代码语言:javascript
代码运行次数:0
运行
复制
 [Obsolete("Method1 is deprecated, please use Method2 instead.", true)]

然而,虽然这在同一个项目上有效,但在调用另一个项目的方法时却没有(我甚至有visual生产力工具为它显示一个错误,但编译仍然成功)

这是故意的吗?还是有解决办法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-10 07:41:25

如果在方法或类中使用标记为过时的内容,并且标记为过时,编译器将不会给您任何警告或错误。

在某些类中考虑以下过时的方法:

代码语言:javascript
代码运行次数:0
运行
复制
public class SomeClass
{
    [Obsolete("Don't use",true)]
    public static void ObsoleteMethod() { }
}

预期的行为是,每当使用编译器时,它都会产生一个编译器错误。

但是,如果在另一种过时的方法中使用它,则甚至不会收到编译器警告。

代码语言:javascript
代码运行次数:0
运行
复制
public class AnotherClass
{
    public void Method()
    {
        SomeClass.ObsoleteMethod();  // Compiler error
    }

    [Obsolete("Avoid use",false)]
    public void AnotherObsoleteMethod()
    {
        SomeClass.ObsoleteMethod(); // No error and no warning
    }
}

如果整个类被标记为过时,也是如此:

代码语言:javascript
代码运行次数:0
运行
复制
[Obsolete()]
public class ObsoleteClass
{
    public void Method()
    {
        SomeClass.ObsoleteMethod(); // No error
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29843459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档