#279 – Passing a Multidimensional Array to a Method
March 23, 2011 1 Comment
You can pass multi-dimensional arrays to methods. Like arrays with a single dimension, the array is passed by value, with a copy of the reference passed to the method. This means that the method can change elements in the array.
Here’s an example of a method that takes a two-dimensional array as an input parameter.
public static void CountPawns(ChessPiece[,] chessboard, out int redPawns, out int blackPawns) { redPawns = 0; blackPawns = 0; for (int row = 0; row < 8; row++) for (int col = 0; col < 8; col++) { ChessPiece piece = chessboard[row,col]; if (piece != null) { if (piece.PieceType == PieceTypeEnum.Pawn) { if (piece.PieceColor == PieceColorEnum.Red) redPawns++; else blackPawns++; } } } }
When calling the method, you just pass the name of the array to the method.
ChessPiece[,] board = new ChessPiece[8, 8]; board[0, 1] = new ChessPiece(PieceTypeEnum.King, PieceColorEnum.Red); // continue to set up board here int redPawns; int blackPawns; Chess.CountPawns(board, out redPawns, out blackPawns);