如果我有一个专门在引用类型变量(例如数据表)上操作并修改它的方法,是否需要从方法中返回该变量?
例如,以下方法遍历数据表并修剪其中的所有值,然后将数据表返回给调用者:
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; }
如果此方法返回void会更好吗?返回它(?)似乎没有意义,但你认为如果它在操作之后返回对象(就像现在那样)会更好吗?
对我来说,当一个方法返回一个引用类型时,我希望它是一个新对象.我会选择让它返回无效.
一个问题:这种方法有没有理由不成为DataTable
班级成员?我认为这DataTable.TrimAllData()
会更好
就个人而言,我会回归无效.方法名称允许开发人员知道您将修改DataTable中的值,并且返回DataTable不会带来任何好处,同时它可能会引入您在处理表之前克隆表的歧义.