Caf*_*eek 8 c# casting interface
我有两个接口IHeaderRow和IDetailRow
然后我有一个实现RawRow:IHeaderRow,IDetailRow的对象
然后我需要将它转换为实现IHeaderRow的HeaderRow.
但是当我尝试时,它最终会变为空或给出异常.
我可以将ObjectRawRow转换为接口IHeaderRow或IDetailRow
var ObjectIHeaderRow = ObjectRawRow as IHeaderRow;
var ObjectIDetailRow = ObjectRawRow as IDetailRow;
Run Code Online (Sandbox Code Playgroud)
但是我不能将ObjectRawRow转换为HeaderRow,或者将ObjectIHeaderRow转换为HeaderRow.
它抛出错误无法将源类型'IA'转换为目标类型'A'
我需要将它转换为实际的HeaderRow类.
思考?
编辑:
即使设立一个明确的演员照顾这个问题,我认为我会为那些想知道的人提供一个答案,为什么我在做我自己的事.
简而言之,我正在按顺序处理文件.逐行.我将行读入RawRow,直到我看到一些值,我实际上并不知道它将是什么类型的行.然后我想将它转换为正确的类型.