00DB9780
представляется в шестнадцатеричном формате. Чтобы объявить в качестве префикса int
значение с 0x
:
public static int TimerBase = 0x00DB9780;
// ^^ add 0x to start of hex numbers
Префикс с 0x
указывает компилятору ожидать (и анализировать) шестнадцатеричное число.
Объяснение ошибки (ошибок)
Причина, по которой компилятор не может преобразовать int в double, заключается в том, что первая часть значения 00D
фактически является одним из способов объявления double
в C #. См. Реальные литералы для получения дополнительной информации. Таким образом, компилятор интерпретирует ваше намерение как:
public static int TimerBase = 0D; // LHS is int, RHS is double
Итак, вы получите ошибку:
не может неявно преобразовать тип double
в int
Компилятор ожидает увидеть ;
после объявления double
(00D
), поэтому он также показывает ошибку при отсутствии точки с запятой:
;Ожидается
Далее компилятор видит B9780
, который он пытается интерпретировать как переменную, поэтому вы получаете ошибку:
'B9780' не существует втекущий контекст