我正在为应用程序编写文件生成器模块,传递数据集和文件名以生成excel,pdf或csv。我正在考虑传递模板文件名,我应该知道文件名是否需要前缀或后缀日期,而不是假设总是添加日期后缀。我可以编写代码来查找MM或DD或YY或YYYY并构建文件名但是想知道这是否可以更好地处理?非常感谢您的建议!
答案 0 :(得分:0)
这是我喜欢使用Flags
枚举的东西。它们允许您对同一个枚举进行多次设置,同时保留使用枚举的好处。此外,任何进一步的要求可以通过向枚举添加一个新值来计算(它必须是2的幂,所以如果在我的示例中添加一个新值,它的值将为4 )然后在必要时为该设置创建逻辑。
使用控制台应用程序的简单示例:
public class Class1
{
[Flags]
private enum DateTypeRequired : byte
{
Prefix = 1,
Suffix = 2
}
public static void Main(string[] args)
{
string myFileName = "test.xls";
var settings = DateTypeRequired.Prefix | DateTypeRequired.Suffix;
AppendDateToFile(ref myFileName, settings);
Console.Write(myFileName);
Console.ReadKey();
}
private static void AppendDateToFile(ref string fileName, DateTypeRequired datesNeeded)
{
if ((datesNeeded & DateTypeRequired.Prefix) == DateTypeRequired.Prefix)
{
fileName = string.Concat(DateTime.Now.ToString("ddmmyyyy"), fileName);
}
if ((datesNeeded & DateTypeRequired.Suffix) == DateTypeRequired.Suffix)
{
string[] fileParts = fileName.Split(new char[]{'.'});
fileName = string.Concat(fileParts[0],
string.Concat(DateTime.Now.ToString("ddmmyyyy.")), fileParts[1]);
}
}
}