Задать вопрос
@Ledington

Как сделать несколько переменных по запросу?

Никак не пойму, как сделать подобную запись: var s = new Test("a", "b", "c");
Он вроде делается через params, но как его так записать, чтобы я мог к нему обращаться?
Вот мой класс:

public class Test 
    {
        private List<string> _elements = new List<string>();

        public void AddElement(string x)
        {
            string AddElement = x;
            _elements.Add(AddElement);
            Console.WriteLine($"Элемент <{AddElement}> добавлен.");
            Console.WriteLine($"Стэк: {String.Join("; ", _elements)}");
            Console.WriteLine();
        }
}
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 1
Есть два способа:
Через конструктор с params

public class Test 
    {
        public Test(params string[] elements) {
            foreach(var element in elements)
                AddElement(element);
        }   
        private List<string> _elements = new List<string>();

        public void AddElement(string x)
        {
            string AddElement = x;
            _elements.Add(AddElement);
            Console.WriteLine($"Элемент <{AddElement}> добавлен.");
            Console.WriteLine($"Стэк: {String.Join("; ", _elements)}");
            Console.WriteLine();
        }
}


var x = new Test("a", "b", "c");

Через Collection Initializer

public class Test 
    {
        private List<string> _elements = new List<string>();
        // Для Collection Initializer нужен публичный метод Add
        public void Add(string element) => AddElement(element); 
        public void AddElement(string x)
        {
            string AddElement = x;
            _elements.Add(AddElement);
            Console.WriteLine($"Элемент <{AddElement}> добавлен.");
            Console.WriteLine($"Стэк: {String.Join("; ", _elements)}");
            Console.WriteLine();
        }
}


var x = new Test { "a", "b", "c" };
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы