处理顺序错误的字符串参数?



好的,所以我有各种需要序列号和部件号的方法。我的问题是有些方法的顺序调换了:

void Foo(string serialNumber, string partNumber);
void Bar(string partNumber, string serialNumber);

这是一个绝对的痛苦,因为我必须找到所有引用这些方法,并手动检查所有的变量名和值作为参数传入。仔细阅读比编译错误困难得多。我可以这样做:

public class SNString
{
public SNString(string serialNumber)
{
SerialNumber = serialNumber;
}
public string SerialNumber { get; set; }
public override string ToString()
{
return SerialNumber;
}
}

和重置方法

void Foo(SNString serialNumber, PNString partNumber);
void Bar(PNString partNumber, SNString  serialNumber);

这允许编译器错误,但是调用

真的很难看:
Foo(new SNString("123"), new PNString("456");

我还必须经历修复由此更改生成的所有编译器错误的漫长跋涉,这可能比手动验证所有方法调用的工作量更多。有更好的方法吗?

也许甚至是一个编码人工智能,它会寻找所有变量的变化,命名为"sn", "serialn"等等,并标记潜在的问题?

正如Raymond所提到的,调用带有命名参数的方法可能是一种解决方案。它确保无论方法签名中的参数顺序如何,都要传递正确的参数。

你可以用相同的参数顺序调用Foo和Bar方法。

Foo(serialNumber: "Serial Number", partNumber: "Part Number");
Bar(serialNumber: "Serial Number", partNumber: "Part Number");

相关内容

  • 没有找到相关文章

最新更新