是否可以重新设计C#方法接口以摆脱`new string [] {}`以提高可读性?

时间:2018-04-29 07:38:30

标签: c# refactoring

有一个如下方法,我想在使用它时简化传递参数:

public virtual Segment AddDataElement(string[] dataElement)
{
    dataElementList.Add(dataElement);
    return this;
}

这种方法被多次调用:

message.AddSegment("NAD")
    .AddDataElement(new string[] { partyFunctionCodeQualifier })
    .AddDataElement(new string[] { partyIdentifier, "", "92" });

是否可以修改方法定义,以便可以编写更具可读性调用lile?

message.AddSegment("NAD")
    .AddDataElement(partyFunctionCodeQualifier)
    .AddDataElement(partyIdentifier, "", "92");

后者可以在内部转换为更早的形式吗?

1 个答案:

答案 0 :(得分:9)

是的,你绝对可以这样做。

首先,您可以使用隐式数组输入将new string[]缩减为new[]

.AddDataElement(new[] { partyFunctionCodeQualifier })

其次,您可以使用params关键字将参数更改为参数数组

public virtual Segment AddDataElement(params string[] dataElement)

此时,您确实可以指定一个字符串 - 或多个字符串,而无需在源代码中构建数组。编译器将为您创建数组。