Menganggap Enum sebagai Bendera
Dalam C#, atribut [Flags] membenarkan penghitungan untuk dianggap sebagai bendera, menjadikan operasi seperti OR bitwise dan tugasan selamat jenis mudah. Walau bagaimanapun, dalam C , ciri ini tidak disokong secara semulajadi.
Mencipta Bendera Enum
Untuk mencipta bendera enum dalam C , satu kaedah adalah untuk menentukan operator bit untuk penghitungan secara manual. Ini melibatkan penciptaan operator seperti bitwise ATAU, bitwise DAN dan sebagainya, yang menukar nilai enum kepada integer, melaksanakan operasi dan kemudian menukar kembali kepada jenis enum.
Pemuatan Terlebih Operator Tersuai
Contoh operator tersuai yang terlebih muatan untuk bendera enum ialah:
enum AnimalFlags { HasClaws = 1, CanFly = 2, EatsFish = 4, Endangered = 8 }; inline AnimalFlags operator|(AnimalFlags a, AnimalFlags b) { return static_cast<AnimalFlags>(static_cast<int>(a) | static_cast<int>(b)); }
Ini membenarkan operasi OR bitwise pada penghitungan AnimalFlags, pada asasnya meniru tingkah laku atribut [Flags] C#.
Keselamatan Jenis
Untuk menguatkuasakan keselamatan jenis dan mengelakkan tugasan yang tidak sah seperti seahawk.flags = HasMaximizeButton, pertimbangkan untuk menggunakan kelas pembalut templat atau teknik lain untuk memastikan bahawa hanya nilai enum yang sah diberikan kepada pembolehubah bendera.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Fungsi Atribut [Bendera] C# untuk Enum dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!