结构类型的赋值与调用问题
结构类型的赋值与调用问题
我定义了一个结构类型
public class memtype:System .Web .UI.Page
{
public struct _memtype
{
public string memtypes; //会员类型
public int xinx1; //购应信息数量
public int xinx2; //采购信息数量
public int xinx3; //代理信息数量
public int xinx4; //合作信息数量
public int xinx5; //招商信息数量
}
public memtype()
{
string sql = "select * from member_Competence where id= " + Session[ "levels "] + " ";
SqlDataReader reader = connstr.ExecuteReader(sql);
if (reader.Read())
{
_memtype me;
me.memtypes = reader[ "type "].ToString();
me.xinx1 = Convert.ToByte(reader[ "xinx1 "].ToString());
me.xinx2 = Convert.ToByte(reader[ "xinx2 "].ToString());
me.xinx3 = Convert.ToByte(reader[ "xinx3 "].ToString());
me.xinx4 = Convert.ToByte(reader[ "xinx4 "].ToString());
me.xinx5 = Convert.ToByte(reader[ "xinx5 "].ToString());
}
reader.Close();
}
}
然后在其它页面调用:
namespace led.my
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
led.memtype._memtype _me;
this.memtype.Text = _me.memtypes.ToString();
this.xinx1.Text = _me.xinx1.ToString();
this.xinx2.Text = _me.xinx2.ToString();
this.xinx3.Text = _me.xinx3.ToString();
this.xinx4.Text = _me.xinx4.ToString();
this.xinx5.Text = _me.xinx5.ToString();
}
}
}
错误提示:使用了可能没有赋值的字段..那地方错了?
[解决办法]
led.memtype._memtype _me; //这里使用结构(结构是值类型)
this.memtype.Text = _me.memtypes.ToString(); //_me初始化了吗?对于值类型,先定义,后初始化,再使用。没有初始化怎么使用
[解决办法]
结构不是引用类新,调用构造函数,必须有参数,也就是说int 类型的,不会自动赋值为0,你要自己控制。。