这可能是一个愚蠢的问题,但我很想知道我是否有办法做到这一点。
为了简化导入大量空格分隔文件的过程,我提出了一个简单的方案来描述动态类型的布局,并将其抛给调用委托的解析器。
布局看起来像这样:
var layout = new
{
Code = new SDFColumn() { Start = 0, Length = 20 },
Name = new SDFColumn() { Start = 20, Length = 3 }
// etc
};
一切都很棒。我现在处于这样一种情况:我有2个非常大的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 */ };
这显然不起作用,因为所有3种类型都有根本不同。
任何想法都将受到赞赏:)
答案 0 :(得分:3)
您是否尝试过使用dynamic
代替var
?这应该延迟打字直到运行时,所以你的潜在对象不必匹配。 var
只是任何静态类型的替代品;它根本不是动态的。