As per this post, the reason there is a distinction between ref
and out
is because it is costly to copy the value of the variable when using ref
.
Why is there a need to marshall in the first place? Doesn't C# just pass the pointer under the hood? In that case, there would be no need to copy values.