When we want to modify some value in one object we may use two different methods, just want to know which one is better or there is no big different between them.
void SomeMethod()
{
UserInfo newUser = New UserInfo();
ModifyUserInfo(newUser);
//Modify UserInfo after calling void method GetUserInfo
}
void ModifyUserInfo(UseerInfo userInfo)
{
userInfo.UserName = "User Name";
.....
}
void SomeMethod()
{
UserInfo newUser = New UserInfo();
//Assign new userinfo explicitly
newUser = GetUserInfo(newUser);
}
UserInfo ModifyUserInfo(UseerInfo userInfo)
{
userInfo.UserName = "User Name";
.....
return userInfo;
}
I would prefer a third:
void SomeMethod()
{
UserInfo newUser = GetUserInfo();
}
UserInfo GetUserInfo()
{
UserInfo userInfo = New UserInfo();
userInfo.UserName = "User Name";
.....
return userInfo;
}
Basically this lets GetUserInfo
handle all of the details of building up UserInfo
, and your calling code does not have to worry about any of the details other than the object it is getting back.
From the second signature - UserInfo ModifyUserInfo(UseerInfo userInfo)
-, I might assume that it will treat UserInfo
as if it was immutable.
I might be mislead into thinking that it will make a copy of the object passed in, and return a new, modified one.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With