【发布时间】:2014-04-04 18:21:21
【问题描述】:
这是我在 .net 4.0 中发现的另一个怪癖:
当我想检查一个包含System.Drawing.Brush 的变量是否包含某个Brush,例如:
using System.Drawing;
HisCell.Col == Brushes.White
它有时会失败,尽管我之前将Brushes.White 分配给了HisCell.Col。
我该如何解决这个错误?
【问题讨论】:
-
使用调试器。如果不是 Brushes.White,那还有什么?也许是你的错? .NET Framework 中的错误并非不可能,但您自己的代码中的错误可能性更大。
-
每当出现故障时,“有时”都会怀疑您的代码!
-
你不想解决这个错误,你想修复这个错误。很有可能,该错误在 您的 代码中。找到每个更改
HisCell.Col的地方,你可能会发现其他一些代码正在修改它的引用。 -
不处理 System.Drawing 对象是 .NET 程序中的标准缺陷。工作了很长一段时间,每个似乎都工作得很好。直到重绘的数量超过垃圾收集器的运行速度,然后再进行kaboom。不要丢弃 Brushes.White btw,其他的。