c# - 在方法中使用输入参数是一种好习惯吗

标签 c#

我需要知道在方法中使用相同的输入参数而不将它们分配给方法局部变量是否是一种好习惯。以下代码块可以更清楚地描述查询。

方式一:输入参数在方法内部使用

public int SumValues(List<int> pLValues)
        {
            int _sum = 0;

            for (int i = 0; i < pLValues.Count; i++)
            {
                _sum = +pLValues[i];
            }

            return _sum;
        }

选项 2:分配给局部变量并在方法内部使用它。

public int SumValues(List<int> pLValues)
{
    int _sum = 0;
    List<int> _lVal = pLValues;

    for (int i = 0; i < _lVal.Count; i++)
    {
        _sum = +_lVal[i];
    }

    return _sum;
}

请告诉我什么是最好的方法,为什么?

最佳答案

声明另一个局部变量没有任何好处,所以不要这样做。 (把一个参数想象成一个局部变量,它被明确指定为开始。)

如果你有一个 ref参数并且您不想更改该值,然后诚然,将它复制到一个新的局部变量中是有意义的。当然,如果您以后需要原始值,也是如此。

不过,我对您的代码进行各种更改:

  • 我会使用 LINQ 的 Sum当然是开始的方法:)
  • 我会放弃你为变量设置的前缀
  • 我可能会将输入类型更改为 IEnumerable<int>
  • 我会使用 foreach循环而不是按索引获取

关于c# - 在方法中使用输入参数是一种好习惯吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13459102/

相关文章:

c# - 将对象转换为通用接口(interface)

c# - 银光错误 0x17E0

c# - PropertyBuilder<T> 不包含 HasColumnType 的定义

c# - 将颜色与6位颜色相互转换

c# - File.Create 异步写入保持文件锁定

c# - 如何处理来自 SQL Server 的 DBNull DateTime 字段?

c# - RadGrid 中的 ComboBox

c# - ASP.NET Core 1.0 POST IEnumerable<T> 到 Controller

c# - newtonsoft.json 的两个依赖版本

c# - LINQ2SQL中如何获取Context.SubmitChanges生成的SQL?