Returning Multiple Values
Methods can return only a single value, but this isn’t always convenient. Suppose you have a class called Doubler
, which contains a method we’ll call DoubleInt( )
that takes two integers and doubles them. Simple enough, right?
The problem is that although DoubleInt( )
can accept two integers, and can process them both, it can return only one of them. Example 8-3 shows a way that you might try to write DoubleInt( )
.
Example 8-3. This is our first attempt at retrieving multiple values
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Example_8_3_ _ _ _Returning_multiple_values { class Doubler { public void DoubleInt(int firstNum, int secondNum) { firstNum = firstNum * 2; secondNum = secondNum * 2; } } class Tester { public void Run( ) { int first = 5; int second = 10; Console.WriteLine("Before doubling:"); Console.WriteLine("First number: {0}, Second number: {1}", first, second); Doubler d = new Doubler( ); d.DoubleInt(first, second); Console.WriteLine("After doubling:"); Console.WriteLine("First number: {0}, Second number: {1}", first, second); } static void Main(string[] args) { Tester t = new Tester( ); t.Run( ); } } }
The output will look something like this:
Before doubling: First number: 5, Second number: 10 After doubling: First number: 5, Second number: 10
Obviously, that’s not the desired result. The problem is with the parameters. You pass in two integer parameters to DoubleInt( )
, and you modify those two ...
Get Learning C# 3.0 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.