我知道标题不是最好的描述问题,但我在这里尽我所能。
基本上我正在使用c#+ asp + openxml,我有类似的东西:
anchor.Append(
new DW.HorizontalPosition(
new DW.PositionOffset(MathOpenXml.centimetersToEMU(1.1).ToString())
new DW.HorizontalAlignment(haPosition)
)
{
RelativeFrom =
DW.HorizontalRelativePositionValues.Margin
}
);
horizontalPosition对象只能接收1个对象,但是它们有不同的类型,我的主要问题是我不能在那里做if语句,我需要先检查一下,例如if offset!= null,如果是如果没有传递另一个对象,则传递,然后作为参数进行偏移。
我不知道如何存档,任何帮助?
答案 0 :(得分:0)
为什么不为HorizontalPosition创建两个构造函数,第一个构造函数接受一个对象,第二个构造函数接受两个?
或者你可以只有一个带有两个参数的构造函数,你可以将if条件放在构造函数块中。
答案 1 :(得分:0)
HorizontalPosition
类重载了构造函数,即具有不同参数列表的几个构造函数。由于重载解析在编译时发生,因此您无法在运行时传递不同类型的参数。
你需要有2个单独的调用,每个调用调用构造函数的不同重载
anchor.Append(
condition
? new DW.HorizontalPosition(
new DW.PositionOffset(MathOpenXml.centimetersToEMU(1.1).ToString())
) { RelativeFrom = DW.HorizontalRelativePositionValues.Margin }
: new DW.HorizontalPosition(
new DW.HorizontalAlignment(haPosition)
) { RelativeFrom = DW.HorizontalRelativePositionValues.Margin }
);