-3

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

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

using System.Drawing;

HisCell.Col == Brushes.White

它有时会失败,尽管我之前分配Brushes.WhiteHisCell.Col

我如何解决这个错误?

4

1 回答 1

1

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

于 2014-03-03T16:13:38.813 回答