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