为什么前面一定要先赋值?
using System;
using System.Collections.Generic;
using System.Text;
namespace Interest
{
class Program
{
static void Main(string[] args)
{
decimal amount, principal = (decimal)1000.00;
double rate = 0.05;
string output;
amount = 1;
output = "Year\tAmount on deposit\n ";
for (int year = 1; year <= 10; year++)
{
amount = principal * (decimal)Math.Pow(1.0+rate,year);
output += year + "\t " + string.Format( "{0:C} ", amount) + "\n ";
}
Console.Write(output);
// Console.Write(amount);//如果前面没有那个amount = 1;就出错
Console.ReadLine();
}
}
}
如果前面没有那个amount = 1;就出错,为什么?
请教!
------解决方案--------------------amount为null时肯定会出错了...
可以初始值 设为0
------解决方案--------------------用我们伟大的C语言导师的语录来说,就是:变量要先赋值,后使用。
------解决方案--------------------你要知道C#是一种强类型的语言,而且要求所有的变量都必须首先赋值才能使用。amount因为是一个值类型,所以其初始值就是default(decimal)(不是空引用)。所以即使你没有amount=1;这句话,理论上在运行时是不会产生错误的。如果没有amount=1,则你说的错误一定是编辑阶段的错误!也就是说,编译过程可以检查是否使用了没有复制的变量。
------解决方案--------------------你只需要记住C#中不允许使用没有初始化的变量。这种强制性的要求,可以降低代码编写错误,以及方便排除错误。也容易让别人查阅你的代码时,容易知道某个变量的值。