static void Main(string[] args) { int[,,] threeDimensionalArray = new int[2, 3, 5]; int[] arraySize = new int[threeDimensionalArray.Rank];//массива для хранения блины, каждого измерения массива for (int i = 0; i < arraySize.Length; i++) { arraySize[i] = threeDimensionalArray.GetUpperBound(i) + 1; } ItemArrayMod itemArrayMod = null; WorkWithArray(threeDimensionalArray, arraySize, itemArrayMod = PutValueInItemArray); WorkWithArray(threeDimensionalArray, arraySize, itemArrayMod = ShowValArray); WorkWithArray(threeDimensionalArray, arraySize, itemArrayMod = PutZero); WorkWithArray(threeDimensionalArray, arraySize, itemArrayMod = ShowValArray); Console.ReadKey(); }
/// <summary> /// Метод для работы с элементом трехмерного массива, в котором мы циклически работаем с каждым его элементом. /// Характер действий производимых над элементом, зависит от того на какой метод ссылается делегат. /// </summary> /// <param name="threeDimensionalArray">Трехмерный массив целых чисел</param> /// <param name="arraySize">Массив хранящий длину измерений трехмерного массива</param> /// <param name="itemArrayMod">Переменная типа делегат, хранаящая ссылку на метод для работы с элементом данного массива</param> private static void WorkWithArray(int [,,] threeDimensionalArray, int [] arraySize, ItemArrayMod itemArrayMod) { for (int x = 0; x < arraySize[0]; x++) { for (int y = 0; y < arraySize[1]; y++) { for (int z = 0; z < arraySize[2]; z++) { itemArrayMod(x, y, z, threeDimensionalArray); } } } Console.WriteLine(); }