gpt4 book ai didi

c# - 在类中创建通用字段

转载 作者:行者123 更新时间:2023-11-30 22:37:36 25 4
gpt4 key购买 nike

我正在编写一个文件处理服务来解析和处理不同类型的交易文件。我有一个通用文件解析器,其中包含针对不同类型事务的实现,如下所示。

public interface IFileParser<T> 
{
List<T> Parse(StreamReader fileStream);
}

public MonthlyParser : IFileParser<MonthlyTransaction>
{
public List<MonthlyTransaction> Parse(StreamReader fileStream)
{
......
}
}

public DailyParser : IFileParser<DailyTransaction>
{
public List<DailyTransaction> Parse(StreamReader fileStream)
{
.....
}
}

public enum FileTypes
{
DailyTransaction,
MonthlyTransaction
}

public class FileProcessor
{
private TransactionContext dataContext;
private IFileParser<T> fileParser;

public FileProcessor(TransactionContext dbContext)
{
dataContext = dbContext;
}

public void ProcessFile(string filePath, FileType fileType)
{
// here instantiate IFileParser based on FileType.
// parse and process file.
}

}

我的问题是如何在该通用接口(interface)的 FileProcessor 类中创建一个可以分配和使用具体实现的字段?我也在考虑将实例化移动到 IoC。

最佳答案

你必须制作FileProcessor如果你想要一个类型为 IFileParser<T> 的字段,也是通用的.

但是,尚不清楚为什么您确实需要具有该类型的字段 - 为什么它不能是 ProcessFile 中的局部变量? ?还不完全清楚您将如何处理列表,即使您已经创建了它...您将如何处理每个元素?

关于c# - 在类中创建通用字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6429628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com