Если вы хотите увидеть, находятся ли любые значений, переданных в параметре, в поле myEnum
класса, вы можете написать:
public bool MyMethod(MyClass class, MyEnum enum)
{
// Here I want to check if object class contains some enum values passed as an argument
// Something like: if(class.myEnum 'contains-one-of-the-items-of enum)
return (this.myEnum & enum) != 0;
}
Это делает логическое «И» битовых флагов и возвращает true
, если какой-либо из флагов в enum
установлен в myEnum
.
Если вы хотите убедиться, что все флаги установлены, вы можете написать:
return (this.myEnum & enum) == this.myEnum;
Кроме того, внимательно прочитайте ответ @ Øyvind Bråthen. Чтобы [Flags]
работал, вам нужно убедиться, что ваши значения перечисления имеют степени 2.