is a byte array Byte[] pass by reference

  • Thread starter Thread starter Peted
  • Start date Start date
P

Peted

In the default state

ie

somemethod(Byte [] array);

is the byte array passed by method or by reference ? or do you have to
use the ref keyword to be able to mod the contents of the orig array
from inside the method ?

thanks

peted
 
somemethod(Byte [] array);

is the byte array passed by method or by reference ? or do you have to
use the ref keyword to be able to mod the contents of the orig array
from inside the method ?

Without using "ref", if you modify array inside somemethod, the
corresponding position is modified in the original array. If you use a "ref"
keyword, then you would be passing "a reference to the reference", which
would allow you to point the received reference somewhere else (moving the
array to a different array), besides allowing you to merely modify the
contents.
 
In the default state

ie

somemethod(Byte [] array);

is the byte array passed by method or by reference ?

The *reference* to the byte array is passed by value.
or do you have to use the ref keyword to be able to mod the
contents of the orig array from inside the method ?

You can change the *contents* of the array just by passing the
reference by value.
If you want the method to be able to change it to a completely
different array (e.g. a different size) you'll need to pass the
parameter by reference.

See http://pobox.com/~skeet/csharp/parameters.html

Jon
 
Back
Top