组合动态类型
本文关键字:类型 动态 组合 | 更新日期: 2023-09-27 18:11:06
这可能是一个愚蠢的问题,但我很想知道是否有一种方法可以做到这一点。
为了简化导入大量以空格分隔的文件的过程,我提出了一个简单的方案,以动态类型描述布局,并将其扔给调用委托的解析器。
一个布局看起来像这样:
var layout = new
{
Code = new SDFColumn() { Start = 0, Length = 20 },
Name = new SDFColumn() { Start = 20, Length = 3 }
// etc
};
一切都很好。我现在的情况是,我有两个非常大的sdf要导入,它们的结构是85%相同的,除了最后的一些差异。
是否有一种方法可以将一个布局附加到另一个,例如:
var layoutCommon = new
{
/* Common fields */
};
var layoutFile01 = new
{
/* Changes for first file type */
};
var layoutFile02 = new
{
/* Changes for the second file type */
};
var finalLayout = /* ??? */;
我意识到有一件事行不通,那就是:
var completeLayout = { };
if(file01)
completeLayout = { /* everything */ };
else
completeLayout = { /* everything */ };
显然这行不通,因为这三种类型本质上是不同的。
您是否尝试过使用dynamic
而不是var
?这会将键入延迟到运行时,因此您的潜在对象不必匹配。var
只是任何静态类型的替代品;它不是动态的