全局项目静态变量
本文关键字:变量 静态 项目 全局 | 更新日期: 2023-09-27 18:11:49
我有三个用于绘制不同类型位图的windows库。它们都有一个共同点:字体、颜色和笔。
我想设计一个库,我可以有所有的标准字体,颜色和笔,这样,如果我做一个字体改变,它会在所有其他库全局改变。
例如:我有三个绘制位图的库,它们都使用相同的设置:
internal static readonly Font ELEVATION_FONT = new Font("Segoe UI Semibold", 7.9f),
DETAIL_BOX_FONT = new Font(FontFamily.GenericSerif, 8f, FontStyle.Regular);//"Palatino Linotype"
internal static readonly Color BACK_COLOR_SCREEN = Color.Black,
LINE_COLOR_SCREEN = Color.FromArgb(161, 161, 161),
BACK_COLOR = Color.White,
LINE_COLOR = Color.Black;
我想创建一个名为MySoluctionNameDrawing的库和所有其他使用这些设置绘图到位图的库,他们将使用来自MySoluctionNameDrawing的库。
也是为了可维护性。
MySoluctionName只是我的解决方案的名称,但我相信你已经明白我的意思了。
任何人都有任何想法,作为最简单和最干净的方式,有我所有的绘图相关的工具在一个库,并从其他库访问他们没有搞得一团糟?
这是我想到的。
绘图DLL
namespace AlumCloudDrawing
{
public static class DrawingOptions
{
public static readonly Font ELEVATION_FONT = new Font("Segoe UI Semibold", 7.9f),
DETAIL_BOX_FONT = new Font(FontFamily.GenericSerif, 8f, FontStyle.Regular);//"Palatino Linotype"
public static readonly Color BACK_COLOR_SCREEN = Color.Black,
LINE_COLOR_SCREEN = Color.FromArgb(161, 161, 161),
BACK_COLOR = Color.White,
LINE_COLOR = Color.Black;
}
}
使用参考从一个库依赖于绘图dll库。
internal static readonly Font ELEVATION_FONT = AlumCloudDrawing.DrawingOptions.ELEVATION_FONT,
DETAIL_BOX_FONT = AlumCloudDrawing.DrawingOptions.DETAIL_BOX_FONT;
internal static readonly Color BACK_COLOR_SCREEN = AlumCloudDrawing.DrawingOptions.BACK_COLOR_SCREEN,
LINE_COLOR_SCREEN = AlumCloudDrawing.DrawingOptions.LINE_COLOR_SCREEN,
BACK_COLOR = AlumCloudDrawing.DrawingOptions.BACK_COLOR,
LINE_COLOR = AlumCloudDrawing.DrawingOptions.LINE_COLOR;
我通常遵循这个模式
/src
FooApp.sln -- solution file
/apps -- folder for apps
/FooApp.Core -- core project
/FooApp.Drawing1 -- project that references core
/FooApp.Drawing2 -- project that references core
/tests -- tests
/FooApp.Core.Test
/FooApp.Drawing1.Test
/FooApp.Drawing2.Test