Передача массива в другую функцию

127
20 февраля 2022, 02:30

Как можно реализовать передачу массива из одной функции в другую? Перепробовал уже несколько способов, но к сожалению они не хотят работать. Мне нужно, чтобы элементы массива из функции Add() передались в функцию Dump() и там вывести список этих элементов. Или такое реализуется с помощью List?

using System;
namespace organizer
{
internal class Program
{
    public static int Day { get; set; }
    public static int Quantity { get; set; }
    public static int Month { get; set; }
    private static void Add(string[] months)
    {
        Console.WriteLine("Введите номер месяца в который вы хотите добавить дело");
        int counter = 1;
        foreach (string mont in months)
        {
            Console.WriteLine(months[counter++] + $" - {counter - 1}");
            if (counter > 12)
            {
                break;
            }
        }
        Console.WriteLine(new string('-', 25));
        Console.Write("Номер месяца: ");
        Month = Convert.ToInt32(Console.ReadLine());
        Console.Write("Введите день месяца на который вы хотите добавить дело: ");
        Day = Convert.ToInt32(Console.ReadLine());
        if (Month == 2)
        {
            while (Day > 28)
            {
                Console.WriteLine("В феврале 28 дней.");
                Console.Write("Введите значение повторно: ");
                Day = Convert.ToInt32(Console.ReadLine());
                if (Day < 28 || Day <= 0)
                {
                    break;
                }
            }
        }
        Console.WriteLine(new string('-', 25));
        Console.Write("Введите количество дел которые вы хотите добавить: ");
        Quantity = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine($"Какие дела вы хотите добавить в {months[Month]} на день {Day}?");
        Console.WriteLine(new string('-', 25));
        Console.WriteLine($"Количество дел которое надо добавить: {Quantity}");
        string[] affairs = new string[Quantity];

        for (int i = 0; i < affairs.Length; i++)
        {
            affairs[i] = Console.ReadLine();
            Console.WriteLine($"Осталось добавить дел: {--Quantity}");
        }

    }
    private static void Dump(string month, int day)
    {
        Console.WriteLine($"Список дел на {month[Month]} в день {day}");
        //foreach (var aff in affairs)
        //{
        //    Console.Write(aff);
        //}
    }
    private static void Main(string[] args)
    {

        string[] months = new string[13];
        #region Months
        months[0] = "Months:";
        months[1] = "January";
        months[2] = "February";
        months[3] = "March";
        months[4] = "April";
        months[5] = "May";
        months[6] = "June";
        months[7] = "July";
        months[8] = "August";
        months[9] = "September";
        months[10] = "October";
        months[11] = "November";
        months[12] = "December";
        #endregion
        Console.WriteLine("LKL");
        Console.WriteLine("Выберите номер операции которую хотите выполнить:" +
            "\n1 - Добавить список дел" +
            "\n2 - Вывести список дел" +
            "\n3 - Перенести дела на следующий месяц");
        int choice;
        while (true)
        {
            choice = Convert.ToInt32(Console.ReadLine());
            if (choice == 1)
            {
                Add(months);
            }
            else if (choice == 2)
            {
                Dump(months[Month], Day);
            }
            else if (choice == 3)
            {
            }
            else
            {
            }
        }
    }
}

}

Answer 1

Вот так у вас все статичное так что обрашатся ко всем элементам класса через . Пример :Program.

           private static void Dump()
            {
                foreach (var month in Program.Add)
                {
                    Console.WriteLine($"Список дел на {month[month]} в день {Program.Day}");
                }
            }
Answer 2

Заведите словарь внутри класса, в котором будете все хранить, и в Dump его передавайте. Только static уберите.

READ ALSO
Выборка строки RadGridView

Выборка строки RadGridView

Как по нажатию клавиши мыши, выбрать всю строку в RadGridView и поместить элементы в List?

86
Dependency injection в ASP.Net Core

Dependency injection в ASP.Net Core

Сейчас сделано так

98
asp.net publish и регистр букв

asp.net publish и регистр букв

Пользуюсь VS 2019

182
Как корректно проверить точность до десятых или сотых?

Как корректно проверить точность до десятых или сотых?

Есть веб-форма, на которой 2 текст бокса, в эти текстбоксы заносятся значения, double, их я проверяю, чтобы они были с точностью до двух знаков...

100