有没有一种方法可以在类外部使用方法时生成编译器警告,而在类内部使用则不会?
原因:类有一些基本行为可以在除少数方法重载情况外的所有情况下提前完成。这个想法是说,这样做很好,但您需要了解有关此类如何工作的一些事情。
最佳答案
一种方法是使用#pragma
指令。
在您使用“原始”方法的类中,在顶部添加以下行:
#pragma warning disable 0612
使用 [Obsolete()] 属性标记您的“原始”方法。
只要您的类是文件中唯一使用 pragma 指令声明的类,对该类中的原始方法的任何调用都不会引发编译器警告。从其他类(文件)发出的调用仍会引发类似于此的编译器警告:
c:\projects\ConsoleApplication1\ConsoleApplication1\Program.cs(13,13): warning CS0612: 'ConsoleApplication1.Class1.Test()' is obsolete
例如
程序.cs
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Class1 c = new Class1();
c.Test(); // call the raw method but with a compiler warning
}
}
}
Class1.cs
#pragma warning disable 0612
using System;
namespace ConsoleApplication1
{
class Class1
{
[Obsolete()]
public void Test()
{
// the 'raw' method
}
private void CallTest()
{
Test(); // call the raw method without a compiler warning
}
}
}
编译时,我在 Program.cs 中收到一个编译器警告,而不是在 Class1.cs 中
健康警告 - 这将暂停针对在 Class1 中进行的调用的编译器警告,以过时其他类中的方法。
关于c# - 如果在类外调用方法,如何生成编译器警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7023852/