全局变量VS局部变量

前言

       全局变量和局部变量!知道了会特别的简单但是就怕不知道啊,不知道就特别难了,还好我知道了。嘻嘻!

内容

       定义:
       局部变量:在程序中只在特定过程或函数中可以访问的变量。局部变量是相对于全局变量而言的。
       全局变量:既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。一个局部变量在被其它对象引用时,会是一个空值。但全局变量却不会出现这种情况。

       解决在敲修改密码窗体时遇到的全局变量和局部变量问题!

       先说明一下:修改密码,先是把两个相同的密码从U层传给外观在传给B层再再再传最后到数据库中把原来密码换成新的密码。改成功了没有呢?给个反映的,就把“成功!”的字符串再传回来,再显示“成功!”。在传回来,传到B层出问题了。一言不合上代码!

       这是修改密码的B层错误代码:

public class ModifyPW
    {
        Factory.Factory factory = new Factory.Factory();
        string str1;
        public string Modify(string xinPW, string quePW)
        {
            if (xinPW == quePW)
            {
                IDAL.ImodifyDAL modify = factory.modify();
                string str1 = modify.modifyPW(quePW);

            }
            else
            {
                str1 = "两次密码不一致!";

            }
            return str1;

        }
    }

       看哪出问题了,仔细看几个str1字符串变量的区别。
       string str1 = modify.modifyPW(quePW);      当单步调试到这,调用D层的函数返回来的“成功”赋值给str1,此时str1是“成功”再走一步return str1;此时的str1是NULL,这是为啥啊?这两个str1看是是一个其实一个是局部变量一个事全局变量,第一个str1在if里边定义的对于这个函数来说是局部的,所以出了if就不能用了,而全局能用。返回的是全局的str1就当然是NULL了。

      B层正确的代码:

public class ModifyPW
    {
        Factory.Factory factory = new Factory.Factory();
        string str1;
        public string Modify(string xinPW, string quePW)
        {
            if (xinPW == quePW)
            {
                IDAL.ImodifyDAL modify = factory.modify();
                str1 = modify.modifyPW(quePW);

            }
            else
            {
                str1 = "两次密码不一致!";

            }
            return str1;

        }
    }

       这样对于这个函数来说都是全局变量了,返回的是“成功”。

总结

       变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值