Member 12731696 Ответов: 2

Ошибка при передаче массива переменных в методе с использованием params.


Я создаю метод, который может принимать в качестве аргументов несколько целочисленных значений . Я пытаюсь сделать это с помощью params. Ошибка появляется в строке 5, Minval declaration, когда я пытаюсь выполнить эту программу

using System;
namespace LearnigToProgram
{
	class Min {
		public void MinVal(params []int numbers)
		{
			for (int i = 0; i < numbers.Length; i++)
			{
				Console.WriteLine(numbers[i]);
				Console.WriteLine();
			}
		}
		
		}
		class ParamsDemo {
			static void Main() {
			Min obj1 = new Min();
			obj1.MinVal(1, 2, 3, 4, 5);

			
			}
		}
	
	}

[no name]

Ваш код должен был бы сначала скомпилироваться, прежде чем вы могли бы попытаться выполнить его
public void MinVal(params int[] numbers)

2 Ответов

Рейтинг:
8

David_Wimbley

Единственная проблема, которую я вижу в вашем коде, - это неправильное объявление массива в вашем методе MinVal.

Следующий код, исправленный только массивом, компилируется и запускается, как и ожидалось.

static void Main(string[] args)
        {

            Min obj1 = new Min();
            obj1.MinVal(1, 2, 3, 4, 5);

            Console.ReadLine();
        }


        class Min
        {
            public void MinVal(params int[] numbers)
            {
                for (int i = 0; i < numbers.Length; i++)
                {
                    Console.WriteLine(numbers[i]);
                    Console.WriteLine();
                }
            }

        }


Member 12731696

Спасибо!!! Не могу поверить, что я боролся с глупой ошибкой объявления массива!!!!: D

Рейтинг:
2

Karthik_Mahalingam

попробуйте это, проверьте в комментариях к строке.

using System;
using System.Windows;  // Add this namespace
namespace LearnigToProgram
{
	class Min {
		public void MinVal(params int[] numbers) // only one variable name is a valid syntax
		{
			for (int i = 0; i < numbers.Length; i++)
			{
				Console.WriteLine(numbers[i]);
				Console.WriteLine();
			}
            Console.ReadLine(); //waits for input,  to view the output being displayed on the console window, else the window will be closed immeditely
		}
		
		}

		class ParamsDemo {
			static void Main() {
			Min obj1 = new Min();
			obj1.MinVal(1, 2, 3, 4, 5); 
			}
		}
	
	}