使用结构或类作为参数

1 c# parameters struct

我对 C# 和一般编程相当陌生,因此我为什么要问这个问题。

我最近让一位同事审查了我的代码,他说对于下面的方法,我应该为一些参数使用一个类。

public List<Items> DoSomething(List<OtherItems> someItems, int amountOfItems, 
    DbGeopgrahpy Location)
{ //More stuff, irrelevant to the question.
Run Code Online (Sandbox Code Playgroud)

他指出我应该把amountOfItemsandLocation放在一个包含这些值的类中。

此方法将从控制器调用,该控制器将此数据返回给客户端。

现在我的问题是为什么?我知道它会提高可读性(可以说是 imo),但是使用类作为参数有什么好处吗?我想我可以假设,当您每次要调用此方法时都必须声明一个类时,这甚至会对性能产生负面影响。

我还发现结构体可以这样使用,如果这是一个好的做法,我什么时候应该使用结构体,什么时候应该使用类?

Set*_*Set 6

使用 DTO 类作为方法参数而不是参数集合的好处之一是防止将来对方法进行签名修改。这对于 API 公共方法可能很有用,例如,允许您在不破坏更改/方法版本控制的情况下修改 API。

假设您需要更新/修改方法,因此您需要传递额外的参数。如果您的方法只需要一个参数,即类/结构,那么您不需要更改方法的签名。相反,您只需向 DTO 类添加额外的属性。