Brushes.Red和新的SolidBrush(Color.Red)有什么区别?

Sar*_* S. 2 c# msdn graph

两者之间有什么区别吗?

Brush b = Brushes.Red;
Run Code Online (Sandbox Code Playgroud)

Brush b = new SolidBrush(Color.Red);
Run Code Online (Sandbox Code Playgroud)

因为当我使用第一个构造函数时,我通过图形绘制线条时遇到异常,但是它在第二个构建器中得到了解决,我无法找出差异???

Guf*_*ffa 5

第一个不是构造函数,它只是获取一个预先创建的对象.

第二个是使用构造函数,这意味着您负责对象,并且在完成对象后应该对其进行处理.如果你不处理它,它将占用一个窗口句柄,直到垃圾收集器收集它.

除此之外,使用方法应该没有区别.如果你得到一个例外,它很可能与你正在做的其他事情有关.

  • @Ramhound:`Brush`是一个抽象类.`Brushes`中的属性返回纯色的画笔,因此它们实际上是`SolidBrush`实例. (2认同)