). Supongamos que tiene dos enteros, a = 8, b = 2. En C++ a | b es cierto. Usé ese comportamiento para trabajar con colecciones de banderas. Por ejemplo, las banderas serían 1, 2, 4, 8 y así sucesivamente, y cualquier colección de ellas sería única. No puedo encontrar cómo hacer eso en C#, ya que | y los operadores & no se comportan como lo harían en C++. Leo la documentación sobre los operadores en C# pero aún no lo entiendo.Bitwise O: C# contra C++
EDIT:
Por desgracia, parece que meterse cosas en algún lugar. Tome este código, por ejemplo:
byte flagCollection = 8;
byte flag = 3;
if ((flag | flagCollection) != 0) MessageBox.Show("y"); else MessageBox.Show("n");
Esto devuelve "y" para cualquier valor que puse en la bandera. Lo cual es obvio, porque 3 | 8 sería 11. Hmmmm ... lo que quiero hacer es tener una colección de banderas: 1, 2, 4, 8, 16 y cuando doy un número, para poder determinar qué banderas es.
Any1 tiene un uso de ejemplo para esto? –
'int' no se convierte' a 'bool' en C++, per se, ya que no hay' bool' tipo - 'int's se usan como' bool's. – Noldorin
@Noldorin: No es así - C (antes de C99) no tenía un tipo bool, y en un momento (mucho antes de la estandarización) C++ tampoco, pero C ha tenido bool (técnicamente se llama _Bool) por aproximadamente un década, y C++ ha tenido incluso más tiempo. –