我正在重构代码的日志记录部分,并且遇到了一些我无法解决的问题。
我们有一个接口ILogRecord
和一个对象调用LogDataRecord
,它实现了另一个接口IUserLog
,后者又实现了ILogRecord
。
我在很多地方使用了以下样式的代码并且工作正常
LogDataRecord ldr = new LogDataRecord( ... );
ILogRecord logrecord = ldr;
但我无法理解为什么下面这段代码不满意
logs = LogHelpers.LoadCSV( ... ));
LoadCSV
返回类型为List<LogDataRecord>
,日志类型为List<ILogRecord>
我已设法通过使用来解决此问题。
logs = new List<ILogRecord>(LogHelpers.LoadCSV( ... ));
我的假设是编译器无法推断集合的任何基类型,但我不明白为什么它看起来不那么深。