如何在向方法传递不合适的参数时在Visual Studio中发出警告消息?

时间:2015-09-02 07:48:21

标签: visual-studio attributes compiler-warnings

我知道变量是无意义的(或者没有机会)它的值在运行时之前是不可知的。

我们假设您有这样的方法:

public void Foo (BarEnum barVal)
{
  //...
  if(barVal == BarEnum.UnappropriateForFooMethod)
     throw new BlaBlaException("Invalid barVal for Foo method ->" + barVal);

  //...
}

此方法已经为不适当的参数抛出异常。但我打算在运行代码之前警告开发人员并获得异常。主要的想法是。如果她/他不关心警告或关闭警告信息并不重要,那么她/他的代码无论如何都会得到例外。

我猜可以使用内置属性。像Obsolete一样。但我找不到任何东西......

如果没有用于此目的的属性,我愿意接受自定义解决方案的建议。

1 个答案:

答案 0 :(得分:1)

从.NET Framework 4及更高版本开始,有一个名为Code Contracts的东西(在GitHub上)。从未尝试过,但看起来就像你寻求的那样。

还有Roslyn。也没有使用它,但可能至少做了你想要的东西。作为一个超级工具,它可能有点笨拙和冗长的需求。

在不使用外部工具的情况下解决此问题的一种方法是彻底检查代码。