На этот вопрос уже есть ответ здесь:
Я написал следующее небольшая программа для распечатки последовательности Фибоначчи:
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)?
Объяснение было бы очень полезно.