在C#中使用十六进制文字将整数设置为负值

M. *_*ley 20 c# hex integer

有没有办法int在C#中使用十六进制文字设置为负值?我查看了Integer文字的规范,但没有提到任何内容.

例如:

int a = -1;         // Allowed
int b = 0xFFFFFFFF; // Not allowed?
Run Code Online (Sandbox Code Playgroud)

我的应用程序的十六进制表示法更清晰,我宁愿不使用uints,因为我需要做一些额外的转换.

Mik*_*son 25

使用unchecked关键字.

unchecked
{
   int b = (int)0xFFFFFFFF;    
}
Run Code Online (Sandbox Code Playgroud)

甚至更短

int b = unchecked((int)0xFFFFFFFF);
Run Code Online (Sandbox Code Playgroud)