【发布时间】:2021-03-31 17:21:52
【问题描述】:
==> 在我的类方法中,我使用 LINQ 查询(和其他处理语句)来派生一个值,并将其存储在类的私有字段中,例如 private int vendorId;。
==> 这个私有变量vendorId 我在该类的其他方法中引用它。
我的查询 这会带来任何性能问题吗?
我应该将这些变量作为方法参数传递,而不是声明类级别的私有变量?
public class VendorHandler
{
private vendorId;
List<obj> vendorList;
int businessId;
...
public method GetVendorStandard()
{
....
this.vendorId= ....;
...
MakePayment();
}
private void MakePayment()
{
string vendorCode = this.vendorId + ....;
List<obj> list = this.vendorList;
...
}
或者应该这样,vendorId(和其他方法参数)应该传递给MakePayment方法
private void MakePayment(int vendorId, List<obj> vendorList, int businessId)
如果我们在类中将它们声明为私有变量,会不会有任何性能问题?
【问题讨论】:
-
视情况而定,但这通常不是好的设计。您将状态添加到您的处理程序/服务/经理/不需要的任何地方。通常,您会将需要在新类(及其对象)中传递的所有数据组合在一起,例如视图模型、DTO 等。
-
无论如何,性能上的任何差异都将在纳秒内。甚至不要考虑这里的性能。相反,制定您的类和方法以充分反映您的业务逻辑。
-
这是一个额外的指针 deref,我什至不会考虑它。如果您正在设计一个主要的类库以用于对性能敏感的代码的紧密循环,也许吧,否则忘记它