我有以下内容:
foreach(var file in today.GetFiles())
{
if(file.Length > 0 && file.Extension == ".txt")
{
switch (file.Name)
{
case "realy_long_ugly_file_name_0":
//do something
break;
case "realy_long_ugly_file_name_1":
//do something else
break;
}
}
}
我遇到了this post并认为我可以使用interface
来清理我的代码。这是否适合这种情况?我已经设置了界面和继承,但不太知道如何继续。
我理解界面根据class
中IPizza
成员的身份调用IList<IPizza>
。我很难理解如何将file.Name
(以前使用switch/case
)传递给我的interface
来调用不同的类。
interface IMyFiles
{
void Process(FileInfo file);
}
public class FileName0 : IMyFiles
{
void IMyFiles.Process(FileInfo file)
{
//do somthing specific to FileName0
}
}
public class FileName1 : IMyFiles
{
void IMyFiles.Process(FileInfo file)
{
//do somthing specific to FileName1
}
}
答案 0 :(得分:0)
您的目标是将基于文件的不同类型的处理封装到自己的对象中。
这些是我看到的选项:
答案 1 :(得分:0)
如果所有文件具有相似的列但数据的变化如第一列有3列而其他有x列,我们可以有其他选择的编程,但如果文件完全不同那么这是很好的代码,它可读并记录