If you just pass it as an argument to the method, transferring the "large" object is "cheaper" - you will only pass a copy of the object link, which is equal to the size of the pointer (if the object does not have a structure type, in which case the entire "object" is copied onto the stack ) If you created a new object, even if it was small, you would have paid the price for selecting and copying properties to it, which you do not have if you are transferring a "large" object.
If you pass it in such a way that it needs to be serialized (i.e. through applications, when calling a web service, etc.), then with a smaller object (essentially a DTO, a data transfer object) is preferred.
carlosfigueira
source share