is there a way to combine flags within an Enum but to restrict the possible combinations? I have an enum like this:
[Flags]
public enum CopyFlags
{
/// <summary>
/// Copy members regardless of their actual case
/// </summary>
CaseSensitive = 1,
/// <summary>
/// Indicates if a leading underscore (e.g. _myMember) should be ignored while comparing member-names.
/// </summary>
IgnoreLeadingUnderscore = 2,
/// <summary>
/// Indicates if only properties should be copied. Usefull when all technical data is stored in properties.
/// </summary>
PropertiesOnly = 4
}
Now I want to also introduce a FieldsOnly
-value but ensure that it is only used when PropertiesOnly
is not present. Is this possible?
No, it is not possible. It's not even possible to restrict the values to being the items listed. For example, the following is allowed in C#:
CopyFlags flags = (CopyFlags)358643;
You need to perform your validation explicitly inside of the methods which include a CopyFlags
parameter.