如果方法对引用类型执行操作,是否需要返回它?

Cal*_*nus 2 c#

如果我有一个专门在引用类型变量(例如数据表)上操作并修改它的方法,是否需要从方法中返回该变量?

例如,以下方法遍历数据表并修剪其中的所有值,然后将数据表返回给调用者:

        private DataTable TrimAllDataInDataTable(DataTable dt)
        {
            foreach (DataRow row in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)
                {
                    row[dc] = row[dc].ToString().Trim();
                }
            }

            return dt;
        }
Run Code Online (Sandbox Code Playgroud)

如果此方法返回void会更好吗?返回它(?)似乎没有意义,但你认为如果它在操作之后返回对象(就像现在那样)会更好吗?

Ste*_*eef 9

对我来说,当一个方法返回一个引用类型时,我希望它是一个新对象.我会选择让它返回无效.

一个问题:这种方法有没有理由不成为DataTable班级成员?我认为这DataTable.TrimAllData()会更好

  • +1表示建议将其作为DataTable类的扩展方法 (2认同)

Mar*_*ark 5

就个人而言,我会回归无效.方法名称允许开发人员知道您将修改DataTable中的值,并且返回DataTable不会带来任何好处,同时它可能会引入您在处理表之前克隆表的歧义.