有没有办法用Roslyn检查参数电位值?

时间:2019-02-02 03:52:26

标签: c# compilation roslyn roslyn-code-analysis

我有一个enum Color

enum Color {
    red,
    blue,
    noColor    // This will be deprecated.
}

还有一个函数PrintColor

public void PrintColor(Color color) {
    Console.WriteLine(color);
}

因为我想弃用noColor,所以不允许PrintColor的参数colorColor.noColor可能是否由 Roslyn 检查,当颜色为Color.noColor时,我们在编译时会引发错误?

评论

我认为这很容易检查:

PrintColor(Color.noColor);

但是如何检查这一点:

public void GetNoColor() => Color.noColor;
PrintColor(GetNoColor());

1 个答案:

答案 0 :(得分:1)

如果您不希望使用某种类型的成员,则可以只使用ObsoleteAttribute