今天在CSDN里遇到一朋友发的一个问题
代码如下
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int ImageHeigt;
ImageHeigt = Getint();
Response.Write(ImageHeigt);
}
public int Getint()
{
int ImageH;
string z = "0";
if (z == "0")
{
ImageH = 500;
}
return ImageH;
}
}
到VS2005里发现问题是局部变量ImageH没有赋值,然而根据程序可以看出ImageH已经赋上了500,为什么会出现这个问题呢?
于是做了以下几种尝试
1、把该变量放到外面作为全局变量。那么结果是正确的
2、把条件语句做了处理,加上else,在else中给其赋值。得到结果正确
3、在局部变量中赋上初值,结果正确
到此,我又开始考虑着其他的情况,于是做了下面的尝试
4、在全局变量里声明,但不赋值,在条件判断中让其故意不符合条件,结果是0(即初始值)
5、条件语句加上else,但是在其中不赋值。结果出错
最后:推荐大家以后再编码的时候注意规范代码的编写。不安全的代码在C#中很不受用