<< является (редактировать) оператором левого сдвига. </p>
Он делает это, чтобы он мог объединить несколько значений Move, используя побитовые операторы, хотя имена немного плохой пример.
Допустим, у меня есть
public enum VehicleType{
Car = 1<<0,
Van = 1<<1,
Truck = 1<<2
}
Теперь я хочу создать метод Depot.RetrieveVehicles (тип VehicleType);
Поскольку значения заданы таким образом, я могу сделать
Depot.RetrieveVehicles(VehicleType.Car | VehicleType.Van);
Для поиска транспортных средств, которые являются либо автомобилями, либо фургонами.
So Car (001) |Ван (010) дает вам 011 в двоичном виде.
Просто, чтобы немного прояснить ситуацию, я мог бы также сделать следующее:
public enum VehicleType{
Car = 1, //001
Van = 2, //010
Truck = 4//100
}
Вы не можете сделать это легко, если вы только что использовали 0, 1,2.Вам придется вызывать этот метод дважды.