gpt4 book ai didi

c# - 修改输入参数并返回它们的方法是坏的吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:46:53 24 4
gpt4 key购买 nike

我有以下代码:

public class MyClass
{
....
}

public static MyClass MyClassModifier(MyClass myinstance)
{

......
return myinstance;
}

在我看来,返回 myinstance 实际上并没有在这里做任何事情,换句话说,这个实现与上面的代码相同(只要 myinstance 没有分配给方法中的另一个对象):

public static void MyClassModifier(MyClass myinstance)
{

......

}

当然,我可以这样做:

public static MyClass MyClassModifier(MyClass myinstance)
{

......
return new MyClass();
}

但这看起来很笨重,如果 MyClass 的构造函数有很多参数,那么这就变得非常笨重,所以,问题是,哪个更好,为什么?

从函数式编程的角度来看,似乎最后一个是可行的方法,但我不确定这是最好的方法。

最佳答案

are methods that modify input parameters and return them bad?

是的。它们具有误导性——客户端会假定您的方法读取输入参数、创建一个新对象并将其返回。事实上,事实并非如此。返回值输入值,客户端不需要捕获它。

关于您的第二个问题,您是应该改变输入值还是创建一个新值,答案在很大程度上取决于您要实现的目标。没有任何上下文就不可能给你更好的答案。

From a functional programming point of view it seems that the last one is the way to go but I'm not sure that this is the best way.

是的,在函数式编程中您需要不可变状态 - 这意味着 MyClass 无法修改,因此您必须返回它的一个新实例。

关于c# - 修改输入参数并返回它们的方法是坏的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27345444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com