我有一个应用程序,我正在创建用户控件,为此我已经定义了一个类来重用一些看起来像这样的字体:
public sealed class MyFonts
{
private static Font Tahoma7Regular = new Font("Tahoma", 7, FontStyle.Regular);
private static Font Tahoma9Regular = new Font("Tahoma", 9, FontStyle.Regular);
private static Font Tahoma9Bold = new Font("Tahoma", 9, FontStyle.Bold);
public static Font ChannelText = new Font("Tahoma", 12, FontStyle.Bold);
public static Font ClockText = Tahoma7Regular;
public static Font HelpText = Tahoma9Regular;
public static Font RollFieldText = Tahoma9Bold;
}
有没有办法改进它,我在反编译器工具中看到了Brushes
类,他们使用了一些我不知道的ThreadData
,但为了简单起见,我还可以改进这段代码?
答案 0 :(得分:0)
在创建这么多对象之前,先分析一下你是否真的需要它?大多数控件都有一个Font属性(具有默认值)。您只需在那里设置值而不是创建新对象。
答案 1 :(得分:0)
ThreadData听起来像某种形式的机制来在线程之间共享数据。
看一下Brushes类:
public static Brush MediumAquamarine { get; }
也许稍微调整你的课程,使其更像上述内容。在我看来,看起来更干净。
答案 2 :(得分:0)
如果您正在构建用户控件,则不应使用静态字段。 usercontrol的主要目标是可重用,因此您不希望对font等属性使用固定值;这些属性将由usercontrol parent设置。
所以你可能要写的是属性(使用Description
之类的属性也很有用):
[Category("Appearance"), Description("Gets or sets the text channel font.")]
[Browsable(true)]
public Font ChannelFont { get; set; }
[Category("Appearance"), Description("Gets or sets the text clock font.")]
[Browsable(true)]
public Font ClockFont { get; set; }
...