为什么Resharper认为这些枚举从未使用过?

时间:2013-02-14 21:41:12

标签: combobox enums resharper datasource automated-refactoring

我有这些枚举:

    private enum FontSizeType
    {
        XSmall, //9
        Small,  //12 
        Medium, //18
        Large,  //24
        XLarge, //36
        XXLarge //47
    }

    private enum AlignOptions
    {
        Left,
        Center,
        Right
    }

    private enum ValueType
    {
        Text,
        Barcode
    }

Resharper的检查告诉我所有人“Enum会员'XSmall'[等]从未使用过”

然而我在我的组合框中使用它们,就像这样:

   comboBoxType1.DataSource = Enum.GetNames(typeof(ValueType));

......为什么Resharper被愚弄了?或者是吗?

2 个答案:

答案 0 :(得分:6)

ReSharper未检测到隐式用法。您可以使用[UsedImplicitly]告诉它隐式使用您的类型成员,然后它应该停止抱怨。

要在代码中使用UsedImplicitlyAttribute,您应该包含对JetBrains.Annotations.dll的引用或在项目中包含一些复制粘贴的源代码,有关详细信息,请参阅http://www.jetbrains.com/resharper/webhelp/Code_Analysis__Annotations_in_Source_Code.html

您应该在每个枚举值上添加[UsedImplicitly]。

答案 1 :(得分:2)

您也可以使用此指令禁用投诉本身: [SuppressMessage("ReSharper", "UnusedMember.Global")] public enum ComplianceStatus { Notcompliant, Unknown, Warning, Compliant, Pendingrestart, Pendinglogoff }