gpt4 book ai didi

c# - 代码优化: Reduce method calling by storing return value

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:31 25 4
gpt4 key购买 nike

我在 C# 中创建了一个相当简单的方法,但我在页面上的任何地方都使用它。有没有一种方法可以减少方法调用,我的意思是一旦方法被调用,返回值就存储在某处,我改为使用该值。这是我的代码。

我已经声明了一些这样的公共(public)属性。

public OrderCollection GetAllClickCollectOrders
{
get
{
return GetClickCollectOrderDetails(Session["SelectedStorePostCode"].ToString());
}
}

public OrderCollection GetShippedClickCollectOrders
{
get
{
return GetShippedClickCollectOrderDetails();
}
}

这里是方法..

protected OrderCollection GetClickCollectOrderDetails(string postcode)
{
// some database ziggy wiggy...

return cncOrderCol;
}

protected OrderCollection GetShippedClickCollectOrderDetails()
{
// some database ziggy wiggy...

return cncShippedOrderCol;
}

所以,假设我想要我这样调用它的集合。

BindGridView(GetAllClickCollectOrders);
orderCount.Text = "Total orders placed: " + GetAllClickCollectOrders.Count;

if (isShipped.Checked)
{
BindGridView(GetShippedClickCollectOrders);
orderCount.Text = "Total orders shipped: " + GetShippedClickCollectOrders.Count;
}

因此,每当我使用该属性时,它每次都会调用方法并转到数据库并将结果返回给我。但是,大多数情况下结果是相同的,除非我更改 Session["SelectedStorePostCode"] 值。我在想是否有更好的方法将结果存储在某处并使用它。

注意:代码工作正常,但我正在寻找更好的性能。谢谢大家...

最佳答案

像什么?

private string collectOrders = String.Empty;

public OrderCollection GetAllClickCollectOrders
{
get
{
if(String.IsNullOrEmpty(collectOrders)
collectOrders = GetClickCollectOrderDetails(Session["SelectedStorePostCode"].ToString());
return collectOrders;
}
}

关于c# - 代码优化: Reduce method calling by storing return value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14498137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com