【发布时间】:2014-05-26 10:44:14
【问题描述】:
由于缺少信息,我已经编辑了我之前的问题。
我编写了一个名为 ReaderFactory 的类,我在其中创建了一个方法 GetAReader(string filename)。此方法使用其文件扩展名返回一个阅读器。我使用 switch-case 来选择特定的阅读器。但是我的导师建议我使用反射而不是 switch-case。我已经开始学习反射并陷入了它的行为。如何在我的代码中实现反射而不是 switch-case? GetAReader 方法如下:
public static IReader GetAReader(string _fileName)
{
fileName = _fileName;
fileExtension = Path.GetExtension(fileName);
switch (fileExtension)
{
case ".txt":
TextFileReader _textReader = new TextFileReader(fileName);
_textReader.ReadData();
return _textReader;
case ".pdf":
PDFReader _pdfReader = new PDFReader(fileName);
_pdfReader.ReadData();
return _pdfReader;
case ".doc":
//reader initialize
case ".rtf":
//reader initialize
case ".docx":
//reader initialize
case ".jpg":
//reader initialize
}
return null;
}
【问题讨论】:
-
"请向我重复大部分文档。我懒得看文档,但我保证如果你复制/粘贴它我不会懒得看"。
-
我劝你不要作为初学者阅读反射,它的“力量”可能会鼓励你将它用于你应该应用语言核心概念的领域
-
我看到“初学者”和“反思”六个字分开。这可不是好兆头……
标签: c# reflection switch-statement