首页 > 解决方案 > 有没有办法用 Roslyn 检查参数潜在值?

问题描述

我有一个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 是时,我们会在编译时引发错误?Color.noColor

注释

我认为这个很容易检查:

PrintColor(Color.noColor);

但是如何检查这个:

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

标签: c#compilationroslynroslyn-code-analysis

解决方案


如果您不想使用某些类型的成员,则可以使用ObsoleteAttribute.


推荐阅读