gpt4 book ai didi

带有 ref 参数的 c# 静态方法 - 一个好主意?

转载 作者:行者123 更新时间:2023-11-30 13:11:32 25 4
gpt4 key购买 nike

我最近重构了一些代码,现在有一个静态实用程序类,其方法如下:

const int x = 1;
public static string doWork(ref DataTable dt)
{
decimal total = 0;
foreach (DataRow row in dt.Select("COST_ID = " + x))
{
decimal annual = decimal.Parse(row["Cost"].ToString());
total += decimal.Round(annual, 2);
}
return String.Format("{0:C}", total);
}

为了清楚起见,我简化了示例...

如果我这样做并在许多用户使用的 ASP.NET 应用程序的代码隐藏中调用 doWork 方法,我是否可能会遇到任何不良影响?任何人都知道或有引用资料,我可以在其中阅读有关静态方法在性能方面如何工作的信息?这会成为任何形式的瓶颈吗?

编辑:

是的,我很抱歉这不是一个很好的例子,所以让我们说一些更像这样的话:

const int x = 1;
public static string doWork(ref DataTable dt)
{
foreach (DataRow row in dt.Select("COST_ID = " + x))
{
row["Cost"] = 0.0;
}
}

你是说 A) 我实际上什至不需要这里的 ref,因为 Datatable 已经通过 ref 和 B) 通过“漏斗”所有对单个静态方法的调用根本不会影响性能。

最佳答案

您唯一需要通过 ref 传递引用类型(例如数据表)的情况是您计划将参数分配给类的新实例。在这种情况下不需要 Ref。按值传递。

关于带有 ref 参数的 c# 静态方法 - 一个好主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6345472/

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