问题描述
我刚刚开始学习c#,遇到的一个问题,大家看看,现在要求计算1加到100的值,我刚开始的代码是这样的usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace@while{classProgram{staticvoidMain(string[]args){inti=1,t;while(i<101){t+=i;i++;}Console.WriteLine(t);Console.ReadKey();}}}结果提示“错误2使用了未赋值的局部变量“t””我把程序中刚刚开始定义的t赋值0后,就可以解决了,这是为什么啊,c语音里好像这样做的效果都是一样的啊,高手解释下啊~
解决方案
解决方案二:
sum=0;for(inti=1;i<=100;i++)sum+=100;Console.WriteLine(sum);
解决方案三:
inti=1,t;=>inti=1,t=0;
解决方案四:
错误提示说明白很清楚.inti=1,t;好像t赋个什么类型string,还是intobject楼下的能说下吗。就像楼主那样不用会赋什么类型
解决方案五:
C#比C语言优秀的一点就是,当程序员使用不规范的写法写程序,可能造成隐患的时候,C#编译器会自动阻止,从语法层面杜绝那些不好的编程习惯。使用变量前不初始化就是一个恶习。
解决方案六:
C#中一切都是对象.而对象的抽象说法就是类,类在使用的时候必须进行实例化(静态类和不能进行实例化的类除外.如抽象类).而int,string等都是类的别名.所以在使用它们的时候必须实例化.否则必然出错.
解决方案七:
引用5楼xue529290400的回复:
C#中一切都是对象.而对象的抽象说法就是类,类在使用的时候必须进行实例化(静态类和不能进行实例化的类除外.如抽象类).而int,string等都是类的别名.所以在使用它们的时候必须实例化.否则必然出错.
+1
解决方案八:
定义一个变量,必须马上初始化它,这是良好的编程习惯.
解决方案九:
t没有声明,直接加条intt;就好了
解决方案十:
C里面写intt;默认为t=0;C#里面没有默认值,任何变量使用前都必须初始化。
解决方案十一:
C#中的变量,一定要初始化。
解决方案十二:
inti=1,t=0;
解决方案十三:
把t的初始值赋0
解决方案十四:
c和c#里面都是可以这样的只是在c#中编译器会给出的一个警告,是一个强制要求!为的是易读、减少错误!
解决方案十五:
C#里面的变量申明就是这样你那个前一个声明并赋值但是t你只声明没有复制Int别名是System.Int32他允许的范围是从负数到最大整数
解决方案:
要初始化的。。。。。。。。。。。。。。
解决方案:
C#里局部变量是没有默认值勤的,所以声明t的时候一定要赋值。如果把t放到方法外就不用,因为类的成员在编译的时候会自妆始化为0.
解决方案:
要初始化。。。。