c# - 多次实例化类的性能问题

标签 c# .net performance

我想知道在表单中实例化类一次或在需要时实例化类之间的性能差异。例如,假设我有一个客户表单来编辑客户。在表单加载时,我实例化了一个客户类并调用了一个函数来返回客户数据以填充表单控件。

CustomerInfo customer = new CustomerInfo();
CustomerDetail  cust = customer.GetCustomer(customerId);
txtName. cust.Name;
...

在表单上还有一个保存按钮。单击该按钮后,我将创建另一个 Customer 类实例来更新数据。

CustomerDetail cust = new CustomerData();
cust.Id = customerId;
cust.Name = txtName.Text;

CustomerInfo customer = new CustomerInfo();
customer.Update(cust);

我知道这很好用。但是,是否更好,性能明智,只是为整个表单创建 Customer 类的单个实例以调用 GetCustomer 和 Update?我知道 GC 会处理这些实例,但我不确定它会在继续下一个实例之前销毁第一个实例。

另外,在这个例子中,我只使用了两个函数调用来调用客户类,但实际上,可能还有更多。

感谢您的帮助。

最佳答案

想法应该是为您正在处理的每个不同的客户创建一个 Customer 实例。因此,如果您的表单只处理一个客户,那么您应该只有一个实例,但如果您的表单处理多个客户,那么您将有多个实例。

就性能而言,只有当您处理许多实例时,这才会成为一个问题,我会说成千上万。

关于c# - 多次实例化类的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870296/

相关文章:

c# - Url.Action 返回浏览器中的当前链接

c# - 为什么 Queryable.SelectMany(...) 重载接受 Func<S, IEnumerable<R>> 而不是 Func<S, IQueryable<R>>?

c# - 如何在 C# 或 VB.Net 中获取没有 WWW 的域名

c# - Java - 通过 Web 服务和 XML 发送可能包含非法字符的 UTF-8 字符串

c# - 无法识别的转义序列 C#6 字符串插值

c# - WinForms 和事件处理程序

.net - ADO.NET Entity Framework 和 NHibernate - 何时使用其中之一

python - 使用 pandas 解析大量日期 - 可扩展性 - 性能下降速度快于线性

mysql - 优化Mysql查询Left Join

sql - CTE 扫描比应有的速度慢得多