【发布时间】:2017-01-15 17:30:54
【问题描述】:
我有一个名为“User”的类/对象,它有大约十几个属性(例如:UserGUID、UserName 等)。它有一个构造函数、静态方法、一些其他的辅助/支持方法等等。
该网站有数百个函数/方法,其中 2+ 参数来自用户对象。例如:
public string HelloWorld(Guid userGUID, Guid accountGUID, bool somethingElse)
{
//Do something
}
我真的想传入 User 对象本身以使调用更清晰,而不必在每次需要来自 User 对象的新值时不断添加参数。像这样:
public string HelloWorld(User user)
{
//Do something
Guid userGUID = user.UserGUID;
}
所以我的问题是,在什么时候传入对象好/坏与传入几个参数?它取决于物体的大小吗?我如何确定什么是“太大”与“好”?是参数的数量吗?多少参数太多了?
【问题讨论】:
-
这可能应该(并且可能会)被关闭,因为它主要是基于意见的。也就是说,我的两分钱是对象(特别是那些由接口表示的对象)允许变化,API 的扩展而不会给调用者带来严重的成本,以及更好的封装。更多地使用对象并尽早使用它们。
-
因此,将对象(甚至是大对象)传递给方法与传递多个/多个参数相比,没有负面性能?
-
在您的情况下使用参数。它更干净、更独立。人们可以很容易地看到他需要提供什么作为论据。对于第二选择,最好在函数完全依赖于用户对象时进行。在你的情况下,它只是使用一些
-
@Losbear 传递对象只会复制对象的引用。所以没关系。但我不推荐上面提到的。
-
@Losbear is User object is your viewmodel ?
标签: c# asp.net asp.net-mvc-4 oop