私人字体和画笔是邪恶的吗?

Run*_*CMD 2 .net c# optimization gdi+

我有一些将字体和画笔作为私有字段的类.有些东西说我这不是正确的做法,应该避免,但我不知道为什么....(Darn subconsiousness :-))

这是真的,为什么这是不好的做法?

class SomeControl: Panel
{
    private Font titelFont = new Font("Arial", 8.25f, FontStyle.Bold);        
    private SolidBrush whiteBrush = new SolidBrush(Color.White);


    public SomeControl()
    {
        //Do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

Ars*_*nko 5

我不明白为什么这很糟糕.

使用画笔时,您已经拥有静态Brushes类,您可能希望重复使用而不是创建自己的类(就像使用常见颜色一样).

例如,whiteBrush您可能不是Brushes.White直接使用而是创建.

当然,它只为您提供一组通用画笔,因此您仍需要为任何其他颜色创建自己的画笔.

请记住,必须正确处理字体和画笔.这意味着当您使用自己的字体和画笔作为属性或类的字段时,此类必须实现IDisposable并正确处理这些字体和画笔.


Alb*_*nbo 5

私有他们看起来很好.

但是你应该将它们设置为静态或覆盖Dispose方法并在那里进行SomeControl处理.titelFontwhiteBrush

如果不将它们设置为公共属性,则很难在设计器中配置字体和画笔.