C#中一变量值问题

来源:互联网 发布:明天,妈妈不在 知乎 编辑:程序博客网 时间:2024/05/16 06:39

 今天在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#中很不受用

 

原创粉丝点击