当前位置: 代码迷 >> C# >> 新手有关问题:关于ref参数初始化有关问题
  详细解决方案

新手有关问题:关于ref参数初始化有关问题

热度:48   发布时间:2016-05-05 04:23:15.0
新手问题:关于ref参数初始化问题
代码如下:
public partial class RefOutDemo : System.Web.UI.Page
{
    
    private int app;
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    private void TestOne(ref int a)
    {
        a = 40;
    }
   
    protected void Button1_Click(object sender, EventArgs e)
    {
        int bpp;
        TestOne(ref app);//app通过
        TestOne(ref bpp);//报错bpp实参没有初始化
  

    }
}
为什么app bpp都没有初始化,Testone(ref app)不报错呢? 
------解决思路----------------------
app是类的field,类在初始化的时候都会进行default(T),即赋默认值,所以app=0
但方法内部是不会赋值的,也不可能赋值,所以bpp没赋值,不能使用

如果你希望不赋值,那应该是out关键字
------解决思路----------------------
app是全局变量,窗体实例化时构造函数初始化为0
bpp是局部变量,运行时定义,没有初始值
  相关解决方案