Тема: Як вказати допустимі значення змінної яку приймає метод

Вітаю!
Підскажіть будь-ласка як вирішити проблему.
Потрібно повернути System.ArgumentException якщо змінна передана до методу не входить в цей список:
"-8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8".
Зарання дякую!

2

Re: Як вказати допустимі значення змінної яку приймає метод

Гадаю, все ж не повернути, а кинути (throw).

Подякували: Death'n'Decay1

3

Re: Як вказати допустимі значення змінної яку приймає метод

System.ArgumentOutOfRangeException

throw new ArgumentOutOfRangeException(...);
Подякували: Death'n'Decay1

4

Re: Як вказати допустимі значення змінної яку приймає метод

Хоча не факт. Може, джуну дали завдання дописати випадок у функцію, що формує виключну ситуацію для кидання з іншого місця.

Подякували: Death'n'Decay1

5

Re: Як вказати допустимі значення змінної яку приймає метод

koala написав:

дописати випадок у функцію, що формує виключну ситуацію для кидання з іншого місця.

В таких випадках я колись робив так:

[DebuggerStepThrough]
private static void _throwOutOfRange(int value, string name) {
    throw new ArgumentOutOfRangeException(
        name, value, string.Format(
            CultureInfo.InvariantCulture,
            "Argument \"{0}\" is out of range [{1} .. {2}].",
            name, MIN, MAX
        )
    );
}

public T Method(int i, int j) {
    if(i < MIN || i > MAX) _throwOutOfRange(i, nameof(i));
    if(j < MIN || j > MAX) _throwOutOfRange(j, nameof(j));
    return new T(i, j);
}
Подякували: Firefox is dead, Death'n'Decay2

6

Re: Як вказати допустимі значення змінної яку приймає метод

Ну, я можу собі уявити й щось таке...

Exception exception = ValidateData();
if(exception!=null)
   throw exception;

ну а у ValidateData вже формується конкретний ексепшн.

Подякували: Firefox is dead, Torbins, Death'n'Decay3

7

Re: Як вказати допустимі значення змінної яку приймає метод

Дякую всім за відповіді! Проблема вирішена за допомогою chatgpt  *THUMBSUP*

Подякували: Firefox is dead1

8

Re: Як вказати допустимі значення змінної яку приймає метод

Death'n'Decay написав:

Дякую всім за відповіді! Проблема вирішена за допомогою chatgpt  *THUMBSUP*

https://replace.org.ua/topic/14953/ ._.
почекаймо ще рік