With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

3.22. Returning Multiple Items from a Method

Problem

In many cases, a single return value for a method is not enough. You need a way to return more than one item from a method.

Solution

Use the `out` keyword on parameters that will act as return parameters. The following method accepts an `inputShape` parameter and calculates `height`, `width`, and `depth` from that value:

```public void ReturnDimensions(int inputShape,
out int height,
out int width,
out int depth)
{
height = 0;
width = 0;
depth = 0;

// Calculate height, width, depth from the inputShape value
}```

This method would be called in the following manner:

```// Declare output parameters
int height;
int width;
int depth;

// Call method and return the height, width, and depth
Obj.ReturnDimensions(1, out height, out width, out depth);```

Another method is to return a class or structure containing all the return values. The previous method has been modified to return a structure instead of using `out` arguments:

```public Dimensions ReturnDimensions(int inputShape)
{
// The default ctor automatically defaults this structure's members to 0
Dimensions objDim = new Dimensions( );

// Calculate objDim.Height, objDim.Width, objDim.Depth from the inputShape value

return (objDim);
}```

where `Dimensions` is defined as follows:

```public struct Dimensions
{
int Height;
int Width;
int Depth;
}```

This method would now be called in this manner:

```// Call method and return the Height, Width, and Depth
Dimensions objDim = obj.ReturnDimensions(1);```

Discussion

Marking a parameter in a method ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

No credit card required