目前在应用程序中使用枚举作为文件名列表,以便能够使用智能感知并确保文件名是现有文件之一(枚举可以防止拼写错误并且必须逐字记住每个文件名)。枚举中目前有107个文件。为了获得音频文件名,使用了枚举值ToString()方法。
现在有一种情况需要根据数据库调用的结果添加一些文件名。枚举是不可能的,并且需要进行大量的应用程序重构(更改所有采用枚举取字符串的方法)。
首先应该做些什么,或者枚举是这个用例的最佳选择?
答案 0 :(得分:8)
我不太确定用例,但一个考虑因素是资源文件。您将获得智能感知,以及能够更改每个本地化的文件名的额外好处。
有关示例,请参阅here。
答案 1 :(得分:0)
实际上,实现此目的的一种方法是将每个文件简单地列为字符串常量。但这使得添加新内容变得令人沮丧,如果您想添加新声音,则必须重新编译并分发整个应用程序。
除此之外,考虑将声音文件列在单个数据文件中(可能是XML)。在程序内部,将数据作为字符串键,字符串值字典导入,其中键是声音的名称,值是文件名。构建一个包装类来保存字典,这样你就可以优雅地处理错误了,瞧!您可以访问您的声音,并且您可以在代码本身之外添加和删除声音。
另外,当您拨打数据库电话时,您需要做的就是将其他声音数据添加到您的字典中。
答案 2 :(得分:0)
也许您需要创建一个包含常量成员的静态类。
static class FileNames
{
public const string FirstFileName = "FirstFileName.txt";
//and so on
}
对于数据库部分(没有详细说明并留下猜测空间),您可以使用 T4模板生成一个类,其中有一个文件名列表在形式如上。 T4模板可以在设计时使用常规ADO .NET代码调用数据库,然后查询结果可用于输出文件名和常量成员。
发现T4非常值得:点击此链接:http://msdn.microsoft.com/en-us/library/bb126445.aspx。