将字符串数组或6个字符串传递给构造函数是否更有效?

时间:2017-05-10 12:34:12

标签: c# .net

我将字符串数组传递给我的对象的构造函数,因为它们是相关的,但我不需要以任何方式操作集合(排序或任何其他数组操作)我只是将数组中的字符串分成接收类中的不同变量。我简单地发现传递数组而不是6个字符串很方便。这会导致任何性能问题吗?

2 个答案:

答案 0 :(得分:4)

对于只有六个对象的数组,不用担心性能问题。

代码可读性和可维护性应该是您最关心的问题:具有六个明确命名参数的构造函数比采用字符串数组的构造函数更具可读性。

考虑以下两个例子:

Employee1(string first, string last, string position) {
    ...
}

Employee2(string[] args) {
    ...
}

Employee1的调用者将获得一个IDE提示符,该提示符解释了每个参数的用途,而Employee2的调用者需要知道哪个参数位于数组中的哪个位置。

将命名参数传递给构造函数的替代方法仅适用于Employee1的用户:

var manager = new Employee1(position:"manager", first:"Vincent", last:"Nwonah");

此外,Employee2的实现需要担心调用者传递少于三个元素的数组或一个包含三个以上元素的数组。

简而言之,Employee1提供了更具可读性和可维护性的替代方案。

答案 1 :(得分:2)

性能真的是一个问题吗?您应该阅读Eric Lippert's performance rant了解一点。

更重要的是设计。你想避免使用参数太多的方法,所以如果你的值确实是类似类型的独立值的集合,或者如果这些值逻辑上属于某种“形式”,那么这就要求传递数组(如果我试图在这里避免使用“class”这个词,但这确实最能描述它。