在做C#小程序时遇到的一个怪异问题,急~~~

来源:百度知道 编辑:UC知道 时间:2024/07/07 01:12:04
简单说一下,下面这段代码:
private void button1_Click(object sender, System.EventArgs e)
{ int j,m;
int i=1;

if(i==1)
j=i;
m = j;
}
运行报错说使用了未赋值的变量j??这是为何??去掉if语句就没问题。

编译的时候会考虑各种情况,当if不成立时,J就没有初始化,所以会出错。。

在C#中,方法中定义的私有变量一定要进行初始化才可以使用.
private void button1_Click(object sender, System.EventArgs e)
{
int j=0;
int m=0;
int i=1;

if(i==1)
j=i;
m = j;
}
而对于类中的属性则会自动初始化,如
Class1
{
private int num;//类的属性
public void ShowNumber()
{
这里显示num值的话为0
}
}

m=j这句话,其中j的值是空的啊,你没有给j赋值.
我知道你的意思,你的意思是m=j也是if的条件下的是吧?但是你没有在if下加大括号,所以就有错误了,正确方法:
private void button1_Click(object sender, System.EventArgs e)
{ int j,m;
int i=1;

if(i==1)
{
j=i;
m = j;
}
}

你的j 声明的是局部变量 一定要初始化一个值的

如果你把int j,m放在点击事件外面 边成全局变量 就可以不用初始化 而直接等待第一次赋值了

至于去掉IF 为什么好用了
是用 他吧 J=I 算成是 初始化赋值了 所以能行了

如果IF 语句下面包含多条语句就必须要加上{} 括号
不然从IF 语句的第二行开始就不属于IF 中的代码了
如果就有一条语句可以不加

if下面加个大括号 int j, m;就OK勒

int i = 1;

if (i == 1)