Это long
значения 0, 1 и 15 соответственно.Суффикс L
указывает на то, что это литерал long
, а префикс 0x
предназначен для шестнадцатеричных числовых литералов.
В C # вы можете делать то же самое (суффикс L
)здесь нет необходимости, так как компилятор уже знает тип и соответствующим образом преобразует - в вашем C-коде определения являются только строковыми заменами, и поэтому тип должен переноситься с ними):
public const long DATA_SRC_INT = 0x0;
public const long DATA_SRC_EXT = 0x1;
public const long DATA_SRC_NONE = 0xF;
Но если толькоШестнадцатеричная запись дает реальное понимание (например, состав битовых полей). Я обычно придерживаюсь десятичных дробей:
public const long DATA_SRC_INT = 0;
public const long DATA_SRC_EXT = 1;
public const long DATA_SRC_NONE = 15;