【发布时间】:2015-11-03 19:38:47
【问题描述】:
对调用 Conditional 方法的代码运行代码分析 (Visual Studio 2015) 会导致未使用的本地变量 (CA1804) 或未使用的参数 (CA1801) 出现警告。例如。为:
using System.Diagnostics;
namespace ConsoleApplication1
{
class Program
{
[Conditional ("NEVER_DEFINED")]
static void Log(string message)
{
System.Console.WriteLine("Demo conditional message logging: " + message);
}
static void Main(string[] args)
{
string message = "Only log this when `NEVER_DEFINE` is #defined";
Log(message);
Method("other message");
}
static void Method(string messageToLog)
{
Log(messageToLog);
}
}
}
代码分析结果:
-
警告 CA1801
“Program.Main(string[])”的参数“args”从未使用过。移除参数或在方法体中使用。
ConsoleApplication1 …\Program.cs 14
-
警告 CA1804
'Program.Main(string[])' 声明了一个'string' 类型的变量'message',它从不使用或只分配给它。使用此变量或将其删除。
ConsoleApplication1 …\Program.cs 15
-
警告 CA1801
从未使用过“Program.Method(string)”的参数“messageToLog”。删除参数或在方法体中使用它。
ConsoleApplication1 …\Program.cs 22
我认为关于 message 和 messageTolog 的警告是误报。有没有办法让代码分析将条件方法视为使用参数?
【问题讨论】:
标签: c# conditional undefined code-analysis