ca2217: لا تضع علامة تعدادات مع FlagsAttribute
TypeName |
DoNotMarkEnumsWithFlags |
CheckId |
ca2217 |
Category |
Microsoft.Usage |
تعطيل تغيير |
غير فاصلة |
السبب
تعداد vهوible خارجياً هو عليها FlagsAttributeوتتضمن قيمة واحدة أو أكثر التي غير قوي من الثاني أو تركيبة من قيم المحددة الأخرى تشغيل التعداد.
وصف القاعدة
يجب أن يكون لتعداد FlagsAttributeموجود فقط في حالة تعريف كل قيمة في التعداد هو الطاقة من الثاني، أو تركيبة من قيم المعرفة.
كيف إلى الإصلاح انتهاكات
إلى إصلاحه انتهاكا لهذه قاعدة، قم بإزالة FlagsAttributeمن التعداد.
عند إلى منع التحذيرات
لا بمنع تحذير من هذه قاعدة.
مثال
يظهر المثال التالي لقائمة تعداد اللون، والذي يحتوي على قيمة 3، الذي هو ولا قوة الثاني، أو تركيبة من أي من قيم المعرفة. اللون قائمة تعداد التي يجب أن لا يكون عليها FlagsAttribute.
Imports System
Namespace Samples
' Violates this rule
<FlagsAttribute()> _
Public Enum Color
None = 0
Red = 1
Orange = 3
Yellow = 4
End Enum
End Namespace
using System;
namespace Samples
{
// Violates this rule
[FlagsAttribute]
public enum Color
{
None = 0,
Red = 1,
Orange = 3,
Yellow = 4
}
}
using namespace System;
namespace Samples
{
// Violates this rule
[FlagsAttribute]
public enum class Color
{
None = 0,
Red = 1,
Orange = 3,
Yellow = 4
};
}
يظهر المثال التالي لتعداد، الأيام، الذي يلبي متطلبات التي يتم وضع علامة مع النظام.FlagsAttribute.
Imports System
Namespace Samples
<FlagsAttribute()> _
Public Enum Days
None = 0
Monday = 1
Tuesday = 2
Wednesday = 4
Thursday = 8
Friday = 16
All = Monday Or Tuesday Or Wednesday Or Thursday Or Friday
End Enum
End Namespace
using System;
namespace Samples
{
[FlagsAttribute]
public enum Days
{
None = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
All = Monday| Tuesday | Wednesday | Thursday | Friday
}
}
using namespace System;
namespace Samples
{
[FlagsAttribute]
public enum class Days
{
None = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
All = Monday| Tuesday | Wednesday | Thursday | Friday
};
}
القواعد ذات الصلة
ca1027: وضع علامة تتضمن التعدادات مع FlagsAttribute