我写了下面的小程序,打印出的斐波那契序列:不能类型“诠释”隐式转换为“短”
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' 改为'short'。一个显式转换 存在(是否缺少强制转换?)
由于所涉及的一切都是Int16的(短),那么为什么会有怎么回事任何隐式转换?更具体地说,为什么在这里失败(而不是最初将一个int分配给变量)?
解释将不胜感激。
什么是错误?你为什么用短裤出于兴趣? – 2011-05-04 11:15:42
@汤姆id假设他有评论的行这个行上的问题 – Manatherin 2011-05-04 11:16:28
相关:http://stackoverflow.com/questions/1084668/why-is-the-result-of-a-subtraction-of-an-int16 int16-variable-a – SquidScareMe 2011-05-04 11:19:52