这是.net 4.0中的另一个怪癖,我发现:
当我想检查一个包含System.Drawing.Brush
的变量是否持有某个Brush时,如:
using System.Drawing;
HisCell.Col == Brushes.White
尽管我之前已将Brushes.White
分配给HisCell.Col
,但它有时会失败。
我如何解决这个错误?
答案 0 :(得分:1)
Brushes
类创建其Brush
个对象的线程局部副本。因此,如果您将Brushes.White
与另一个线程上 set 的值进行比较,则它们将成为不同的对象,并导致相等的错误,因为Brush
没有实现相等性,因此将执行引用相等。