The analyzer has detected an issue: the type of the object calling the 'Enum.HasFlag' method is different from the type of the argument passed. Such a call will result in throwing an 'ArgumentException'.
Consider the following synthetic example:
bool DoSomethingIfAttachedToParent(TaskContinuationOptions options)
{
if (options.HasFlag(TaskCreationOptions.AttachedToParent))
{
// ....
return true;
}
else
{
return false;
}
}
Note that in this example, 'HasFlag' is called on an object of type 'TaskContinuationOptions', whereas an object of type 'TaskCreationOptions' is passed as an argument. Executing this code will result in throwing an 'ArgumentException'.
An error like that may be difficult to notice because of the similar names of the enumerations and because the 'AttachedToParent' element is found in both types.
The error can be fixed by changing either the type of the argument or the type of the calling object:
bool DoSomethingIfAttachedToParent(TaskContinuationOptions options)
{
if (options.HasFlag(TaskContinuationOptions.AttachedToParent))
{
// ....
return true;
}
else
{
return false;
}
}
This diagnostic rule is classified as:
Was this page helpful?
Your message has been sent. We will email you at
If you do not see the email in your inbox, please check if it is filtered to one of the following folders: