返回作为参数传递的同一对象的方法

pun*_*ter 6 c# oop methods

将对象传递给方法然后返回相同的对象而不是在方法本身内部创建新对象是否可以接受?

举个例子:如果有一个实体类如下:

class UserDetails {
    int UserID { get; set; }
    string UserName { get; set; }
    string UserAge { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我将此类的实例传递给方法,如下所示:

UserDetails UserInfo = new UserDetails();
UserInfo = Get_Details(UserInfo);
Run Code Online (Sandbox Code Playgroud)

该方法执行以下操作是否合理?

public UserDetails Get_Details(UserDetails user) {
    // SQL Operations...
    user.age = 32;
    return user;
}
Run Code Online (Sandbox Code Playgroud)

Jef*_*ter 1

这对于构建器模式很有用(当您想要逐步构建复杂的对象时)。

举一个非常糟糕的例子:

class FooBuilder {
  FooBuilder WithAge(int age);
  FooBuilder WithUrl(Url url);

  Foo ToFoo();
}

new FooBuilder().WithAge(12).WithUrl(new Url("http://www.happybirthday.com/").ToFoo();
Run Code Online (Sandbox Code Playgroud)

在您的特定情况下,我更愿意使用初始化语法一次性初始化所有内容。

new User { Age = 45, UserName = "Bob", Id = 101 };
Run Code Online (Sandbox Code Playgroud)