哪种方法更好?空,没有参数或返回数据

本文关键字:参数 返回 数据 方法 更好 | 更新日期: 2023-09-27 18:25:04

我很好奇是否有解决问题的首选方法。基本上,我有一些数据(它是xml),我需要修改数据以添加一些属性,比如说。为此,我已经为自己写了一个方法。然后我需要稍后使用修改后的数据。该方法应该返回void还是返回所需的数据类型?

选项1:

var someData = GetTheData();
someData = ModifyTheData(someData);

选项2:

var someData = GetTheData();
ModifyTheData(someData, out someData);

使用这两个版本之间有什么区别吗?我认为选项1将在内存中创建2个实例(1个用于someData变量,1个用于方法的返回值),但选项2只有1个实例,这是对的吗?

是否有首选方法?没关系,我只是好奇

非常感谢

哪种方法更好?空,没有参数或返回数据

我认为选项1将在内存中创建2个实例(1个用于someData变量,1个用于方法的返回值),但选项2只有1个实例,这是对的吗?

这将取决于ModifyTheData方法的实现,以及someData的类型是引用类型还是值类型。如果只将out变量分配给第一个参数,则如果someData是引用类型,则两者都是等效的:

public void ModifyTheData(SomeData someData, out SomeData data)
{
    someData.Foo = "bar";
    data = someData;
}

与相同

public SomeData ModifyTheData(SomeData someData)
{
    someData.Foo = "bar";
    return someData;
}

与相同

public void ModifyTheData(SomeData someData)
{
    someData.Foo = "bar";
}

我希望尽可能避免参数
在你的情况下,我认为最好返回修改后的数据。它的可读性更强,更全面。