Pass by value vs reference

Pass by value vs reference

C#

public void Foo(Image image) {

// This change won't be seen by the caller: it's changing the value // of the parameter. image = Image.FromStream(...);

}

public void Foo(ref Image image) {

// This change will be seen by the caller: it's changing the value // of the parameter, but we're using pass by reference

image = Image.FromStream(...);

}

public void Foo(Image image) {

// This change will be seen by the caller: it's changing the data

// within the object that the parameter value refers to.

image.RotateFlip(...);

}