c# - 声明十六进制数:当前上下文中不存在名称“B9780”
问题描述
我不知道为什么会这样说:
当前上下文中不存在名称“B9780”
我有以下代码:
class Program
{
public static int TimerBase = 00DB9780;
}
我希望它接受这一点,但它说:
无法将类型隐式转换
double
为int
. 存在显式转换(您是否缺少演员表?)
解决方案
00DB9780
表示为十六进制。将值声明为int
前缀0x
:
public static int TimerBase = 0x00DB9780;
// ^^ add 0x to start of hex numbers
前缀 with0x
告诉编译器期望(并解析)一个十六进制数。
错误说明
编译器说不能将 int 转换为 double 的原因是值的第一部分00D
实际上是double
在 C# 中声明 a 的一种方法。有关详细信息,请参阅真实文字。因此编译器将您的意图解释为:
public static int TimerBase = 0D; // LHS is int, RHS is double
所以你得到错误:
不能将类型隐式转换
double
为int
编译器希望在声明 ( );
之后看到 a,因此它还会显示缺少分号的错误:double
00D
; 预期的
接下来,编译器会看到B9780
它试图将其解释为变量,这就是您收到错误的原因:
当前上下文中不存在“B9780”
推荐阅读
- java - 过滤字符串输出/提取一个键值对
- java - “错误:解析时到达文件末尾”
- sas - SAS 如果宏内的条件未按预期工作
- azure - 将在 Azure 上托管的 asp.net 中的环境变量引用的 JSON 文件的存储位置
- linux - 应用程序只看到双处理器机器上可用线程的一半
- hyperledger-fabric - 无法启动或升级 BNA
- python - 404 用于烧瓶中的所有路线
- database - CodeIgniter:没有 www 的服务器名称不会选择正确的数据库配置
- php - 使用 zoonman/linkedin-api-php-client 从 LinkedIn API V2 获取完整的 r_basicprofile 信息
- tensorflow - Keras 报告的准确性与 model.predict() 不符