Visual Studio检测未使用的返回

时间:2014-02-20 14:07:48

标签: c# visual-studio-2013

我花了一个小时的时间来试图找出为什么某些代码无法正常工作。我没有得到任何类型的编译错误,并且已经跟踪错误以调用函数并且不对返回值执行任何操作。代码比下面的示例更复杂,因为Class1是不可变的,但它仍然证明了这个问题:

public class Class1
{
    private int MyVal = 0;
    public int GetMyVal()
    {
        return MyVal;
    }
}

public void Tester(){
    Class1 Instance = new Class1();
    Instance.GetMyVal();
}

GetMyVal()的函数调用在技术上是无用的,因为它在技术上是正确的。正如我所说,代码涉及更多,但这是核心问题。

我有点惊讶的是,VS 2013(For Web)未能突出显示该问题,因为显然没有通过调用GetMyVal获得任何结果。是否有一些我缺少的开关来检测这类事情,还是超出了Visual Studio可以实现的范围?

1 个答案:

答案 0 :(得分:1)

我怀疑是否有任何编辑可以给你你想要的东西。

VS会告诉您是否有一个你没有引用的变量(至少对于Pro和Ultimate。没有使用过Web for 2012/2013)。但是,在Class1的范围内,private int MyVal 在您的GetMyVal函数中被引用,因此不会将其标记为未引用的属性。

它通常可以捕获无用的代码片段,但我不知道您希望它如何表示您之前初始化的引用的变量没有意义。它无法知道Class1中的属性不是您想要稍后使用/修改的内容。

如果我误解了你的问题,请纠正我

旁注:如果你能想办法让它做你想做的事,我可以建议你写一个插件吗?请记住,像Resharper和FXCop这样的现有插件增加了一个功能世界