using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Project1 { class Program { [Flags] public enum MyEnum { idx0 = 0, idx1 = 1, idx2 = 2, idx3 = 4, idx4 = 8, idx5 = 16 }; //Renvoie l'erreur "Un des paramètres d'un opérateur binaire doit être le type conteneur" public static bool operator & (MyEnum x1, MyEnum x2) { return ((int)(x1) & (int)(x2))!=0; } static void Main() { MyEnum a = MyEnum.idx1 | MyEnum.idx2; MyEnum b = MyEnum.idx1 | MyEnum.idx3; bool result = false; result = ((int)(a) & (int)(b) )!=0; //true result = ((int)(a) & (int)(MyEnum.idx1))!=0; //true result = ((int)(a) & (int)(MyEnum.idx2))!=0; //true result = ((int)(a) & (int)(MyEnum.idx3))!=0; //false result = ((int)(a) & (int)(MyEnum.idx4))!=0; //false //Souhaite pouvoir écrire /* result = a & MyEnum.idx1; result = a & MyEnum.idx2; result = a & MyEnum.idx3; result = a & MyEnum.idx4; */ } } }