.net - C# Method parameter incorrectly updates -
i have following c# simple code :
public class error { public string errordescription { get; set; } public string errorcode { get; set; } } public class request { public error requesterror { get; set; } } public class response { public error responseerror { get; set; } } public response process(request request) { var r = new response { responseerror = request.requesterror }; r.responseerror.errordescription = "new response description"; return r; }
i call process through console app :
var request = new request { requesterror = new error() { errorcode = "request error code", errordescription = "request error description" } }; var service = new service(); var response = service.process(request); debug.writeline("request errordescription = " + request.requesterror.errordescription);
why request.responseerror.errordescription equal "new response description"; have not updated request object , it's not called out/ref. update response object return.
what doing wrong?
thanks
this start of problem:
responseerror = request.requesterror;
you have single error
object - after line, response , request both refer same object. bear in mind error
class, values of request.requesterror
, response.responseerror
references.
you modify object here:
r.responseerror.errordescription = "new response description";
if still don't understand, might want read article on references , values.
Comments
Post a Comment