如何在不取消选中的情况下执行此操作?

Ear*_*rlz 5 c# unchecked

几个月前我编写了这段代码,因为这是我能想到的唯一方法(在学习C#的同时).你会怎么做?是unchecked这样做的正确方法?

unchecked //FromArgb takes a 32 bit value, though says it's signed. Which colors shouldn't be.
{
  _EditControl.BackColor = System.Drawing.Color.FromArgb((int)0xFFCCCCCC);
}
Run Code Online (Sandbox Code Playgroud)

Nic*_*ick 6

它需要一个带符号的int b/c,这可以追溯到VB.NET没有无符号值的时候.因此,为了保持C#和VB.NET之间的兼容性,所有BCL库都使用有符号值,即使它没有逻辑意义.

  • 另一种看待这种情况的方法是,不需要符合CLS的语言来理解uint.所以图书馆通常会避免使用uint. (2认同)

Mic*_*urr 2

您可以分解 int 的组成部分并使用FromArgb()单独使用它们的重载:

System.Drawing.Color.FromArgb( 0xFF, 0xCC, 0xCC, 0xCC);
Run Code Online (Sandbox Code Playgroud)