Неявное преобразование типа возвращаемого значения - PullRequest
1 голос
/ 12 февраля 2020

У меня есть функция, которая возвращает long, но возвращаемое мной значение является целым числом. Я знаю о неявном приведении, но технически тип возвращаемого значения функции не соответствует типу возвращаемого значения. Код компилируется и запускается без предупреждений или ошибок. Что здесь происходит?

public static long GetIndex(int Index){
  int [] marks = new int[5]  {99, 98, 92, 97, 95};
  return marks[Index];
}

public static void Main(string[] args)
{
  long n = GetIndex(3);
}

1 Ответ

3 голосов
/ 12 февраля 2020

Да, оператор return будет применять неявные преобразования. Вот простой пример:

public long Method()
{
    int value = 10;
    return value;
}

Это просто эквивалентно:

public long Method()
{
    int value = 10;
    long valueToReturn = value;
    return valueToReturn;
}

Так что, если вы ожидаете, что второй сработает, просто подумайте, что первый делает именно это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...