@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();
        }
}
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
Есть два способа:
Через конструктор с 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" };
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы