List <T>或集合的编码样式"ref"

Evg*_*nov 0 c# coding-style

我有改变List类型的参数的函数(改变内部对象状态).例如:

    public void ChangeList<T>(List<T> source, T value)
    {
        //Actions
        source.Add(value);
        //Actions
    }
Run Code Online (Sandbox Code Playgroud)

什么是功能签名更好?为什么?

第一: public void ChangeList<T>(List<T> source, T value)

要么

第二: public void ChangeList<T>(ref List<T> source, T value)

编辑:问题可以改变.如何明确指定函数更改列表的状态?(函数名称或ReadonlyCollection除外)

Mar*_*ell 8

第一个.第二个尖叫着"我不知道是什么ref意思"; 这里完全错了.这真的不是一个风格问题.ref在此上下文中使用的唯一原因是该ChangeList方法是否需要重新分配列表(返回不同的列表实例,而不是按照名称建议,并改变现有列表).在那种情况下,我认为return会更好:

public List<T> TransformBasedOnList<T>(List<T> source, T value) { ... }
Run Code Online (Sandbox Code Playgroud)