【发布时间】:2015-04-01 15:09:33
【问题描述】:
我有以下几点:
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 清理我的代码。这是否适合这种情况?我已经设置了接口和继承,但不太知道如何进行。
我了解该接口根据IPizza 成员在IList<IPizza> 中的内容调用不同的class。我很难理解如何将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
}
}
【问题讨论】: