V'è un caso che le altre risposte qui non hanno detto che potrebbero aiutare gli altri S.
Con C# il tipo sottostante di enum è un integrale. Perché è un integrale, puoi logicamente O le enumerazioni insieme.
Quando si utilizza uno dei metodi precedenti per l'uguaglianza, se le enumerazioni sono logicamente OR insieme.
Quindi, per alcuni casi speciali, ad esempio l'utilizzo di enumerazioni come flag, è necessario che sia logico e il caso che si sta verificando con il primo, prima di verificare l'uguaglianza.
if ((enumInstance & MyEnum.SomeValue).Equals(MyEnum.SomeValue))
o
if ((enumInstance & MyEnum.SomeValue) == MyEnum.SomeValue)
In senso stretto è più sicuro da usare "==" con enumerazioni.
Un elenco completo dei possibili tipi enum può essere trovato qui: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/enum
Mi sento come questo è stato probabilmente risposto prima, non riesco proprio a trovare dove. Se è stata data una risposta fammi sapere e ho cancellato questa domanda – ToddBFisher
praticamente * ogni * domanda posta su SO è stata posta qui prima ... dovrebbe esserci un badge per fare una domanda davvero unica. –
http://stackoverflow.com/questions/814878/c-sharp-difference-between-and-equals – jAC