1

这可能是一个愚蠢的问题,但我很想知道是否有办法做到这一点。

为了简化导入大量以空格分隔的文件的过程,我想出了一个简单的方案来描述动态类型的布局并将其扔给调用委托的解析器。

布局如下所示:

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 种类型都根本不同。

任何想法,将不胜感激 :)

4

1 回答 1

3

您是否尝试过使用dynamic而不是var?这应该将输入延迟到运行时,因此您的潜在对象不必匹配。var只是任何静态类型的替代品;它实际上根本不是动态的。

于 2011-10-13T18:05:40.747 回答