is a byte array Byte[] pass by reference

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
 
A

Alberto Poblacion

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.
 
J

Jon Skeet [C# MVP]

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top