2 System.Drawing.Brushes之间的比较失败

时间:2014-03-03 15:53:50

标签: c# .net brushes

这是.net 4.0中的另一个怪癖,我发现:

当我想检查一个包含System.Drawing.Brush的变量是否持有某个Brush时,如:

using System.Drawing;

HisCell.Col == Brushes.White
尽管我之前已将Brushes.White分配给HisCell.Col,但它有时会失败。

我如何解决这个错误?

1 个答案:

答案 0 :(得分:1)

Brushes类创建其Brush个对象的线程局部副本。因此,如果您将Brushes.White与另一个线程上 set 的值进行比较,则它们将成为不同的对象,并导致相等的错误,因为Brush没有实现相等性,因此将执行引用相等。