Color.FromArgb如何将Int32作为参数?

use*_*923 7 c# colors argb

Color.FromArgb方法采用Int32作为参数.的值Color.White#FFFFFFFF作为ARGB,这是4.294.967.295为十进制(方式以上int.MaxValue).我在这里不理解什么?int如果有效ARGB值高于a的最大值,该方法如何作为参数int

Daw*_*aws 11

不幸的是,由于Color.FromArgb采用的int是a而不是a uint,因此需要对大于int.MaxValue的颜色使用unchecked关键字.

var white = Color.FromArgb(unchecked((int)0xFFFFFFFF));
Run Code Online (Sandbox Code Playgroud)

  • 我发现 `Color.FromArgb(255, Color.FromArgb(0x992E11));` 有效。 (3认同)
  • 不,您可以将其作为int提供给它.但是,你不能把它作为一个常量提供,因为编译器跳过它,但运行时没问题.这样可行:`long l = 0xffffffff; 颜色c = Color.FromArgb((int)l);`这不是:`const long l = 0xffffffff; 颜色c = Color.FromArgb((int)l);` (2认同)