代码如下:
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是局部变量,运行时定义,没有初始值