#271 – Passing a Reference Type as an Output Parameter
March 15, 2011 Leave a comment
You can pass a reference-typed variable to a method as an output parameter, using the out keyword. This indicates that the parameter is an output method. For a reference type, this means that the method is expected to change the reference to point to a different object.
public static void FindBallPlayingDog(out Dog fav)
{
fav = null;
foreach (Dog d in AllDogs)
{
if (d.Motto.Contains("ball"))
fav = d;
}
}
When calling the method, we need to include the out keyword as a parameter modifier:
Dog kirby = new Dog("Kirby");
kirby.Motto = "Love chasing balls";
Dog jack = new Dog("Jack");
jack.Motto = "Sneak away when possible";
Dog fav = jack;
Dog.FindBallPlayingDog(out fav); // Fav is now Kirby