Невозможно неявно преобразовать тип int в short [дублировать]

На этот вопрос уже есть ответ здесь:

Я написал следующее небольшая программа для распечатки последовательности Фибоначчи:

static void Main(string[] args)
{
    Console.Write("Please give a value for n:");
    Int16 n = Int16.Parse(Console.ReadLine());

    Int16 firstNo = 0;
    Int16 secondNo = 1;

    Console.WriteLine(firstNo);
    Console.WriteLine(secondNo);

    for (Int16 i = 0; i < n; i++)
    {
        //Problem on this line                    
        Int16 answer = firstNo + secondNo;

        Console.WriteLine(answer);

        firstNo = secondNo;
        secondNo = answer;
    }

    Console.ReadLine();

}

Сообщение компиляции:

Невозможно неявно преобразовать тип 'int' короткий'. Явное преобразование существует (вам не хватает приведений?)

Поскольку все задействованное - это Int16 (коротко), тогда почему происходят какие-либо неявные преобразования? И, более конкретно, почему сбой здесь (а не при первоначальном присвоении переменной int)?

Объяснение было бы очень полезно.

39
задан Sayyid 30 October 2015 в 11:30
поделиться