当前位置:  开发笔记 > 编程语言 > 正文

修改引用类型参数的方法是不是很糟糕?

如何解决《修改引用类型参数的方法是不是很糟糕?》经验,为你挑选了1个好方法。

我见过这样的方法:

public void Foo(List list)
{
    list.Add("Bar");
}

这是修改方法中参数的好习惯吗?

这会不会更好?

public List Foo(List list)
{
    // Edit
    List newlist = new List(list);
    newlist.Add("Bar");
    return newlist;
}

感觉就像第一个例子有意想不到的副作用.



1> Matt Hamilto..:

在你给出的例子中,第一个似乎比第二个更好.如果我看到一个方法接受了一个列表并且还返回了一个列表,那么我的第一个假设是它返回一个新列表而不是触及它所给出的列表.因此,第二种方法是具有意想不到的副作用的方法.

只要您的方法命名正确,修改参数几乎没有危险.考虑一下:

public void Fill(IList list)
{
    // add a bunch of items to list
}

使用"Fill"之类的名称,您可以非常肯定该方法将修改列表.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有