关于传递许多参数

Sam*_*sha 9 .net c# asp.net .net-2.0

我有大约8-9个参数传入一个返回数组的函数.我想知道直接在函数中传递这些参数或传递数组更好吗?这将是一个更好的方式,为什么?

Ste*_*fan 12

如果我会做任何事情,那么就是创建一个包含所有参数的结构,以获得良好的智能和强名称.

public struct user 
{ 
    public string FirstName; 
    public string LastName; 
    public string zilionotherproperties; 
    public bool SearchByLastNameOnly; 
} 
public user[] GetUserData(user usr) 
{ 
    //search for users using passed data and return an array of users. 
} 
Run Code Online (Sandbox Code Playgroud)

  • 我会这样做,但不使用结构.我会使用一个类,并可能使它不可变.可变结构很容易以难以点的方式被滥用. (2认同)

Dav*_*kle 6

单独传递,因为:

  • 这是类型安全的方式.
  • IntelliSense将在Visual Studio中提取它,当您编写调用函数时,您将知道它是什么.
  • 执行这种方式更快.

但是,如果参数确实是数组,则传递数组.例:

对于看起来像这样的函数,请使用以下表示法:

Array FireEmployee(string first, string middle, string last, int id) {...}
Run Code Online (Sandbox Code Playgroud)

对于看起来像这样的函数,使用数组:

Array FireEmployees(Employee[] unionWorkers) {...}
Run Code Online (Sandbox Code Playgroud)