一个类在另一个类中以集合形式声明为属性时应该注意的问题

标题:一个类在另一个类中以集合形式声明为属性时应该注意的问题,先解释一下,看下面的代码吧


    [Serializable]
    public class MO_T_sj_quest
    {
        public List<MO_T_sj_answer> AnswerList { get; set; }

        public List<MO_T_sj_answer> IDList { get; set; }

        public List<MO_T_sj_quest_bind> BindList { get; set; }

        public List<MO_T_sj_quest_user> UserList { get; set; }

        public int Classid { get; set; }


}

明白了吧,
<pre name="code" class="csharp">public List<MO_T_sj_answer> AnswerList { get; set; }

 这个就是mo_t_sj_quest中的一个属性,只不过这个属性相比Classid有点特殊,其是一个泛型集合,那么在使用的时候应该注意以下方面: 


如果我想在业务层去赋值给mo_t_sj_quest,但里面有几个泛型集合,想同时给他赋值,假设集合里只有一个值的话,是不是如下写:

                MO_T_sj_quest tempModelQuest = new MO_T_sj_quest();
                tempModelQuest.AnswerList[0].Content = "dffffffffdfd";
                tempModelQuest.UserList[0].MEDIAID = 1;
                tempModelQuest.Medias[0].ID = 5;
哈哈,错了,这样写,看似很合理,但是忘记了,这个 tempModelQuest.AnswerList[0]是一个泛型集合List<MO_T_sj_answer>,你还没有初始化就去使用,会不会报错呢?

所以,赋值应该这样:

 MO_T_sj_quest tempModelQuest = new MO_T_sj_quest();

                tempModelQuest.UserList = new List<MO_T_sj_quest_user>() { new MO_T_sj_quest_user() { USERNAME = "dsdsdsdsdsds"} };

                tempModelQuest.Medias = new List<MO_T_sj_quest_media>() { new MO_T_sj_quest_media() { ID = 5 } };

                tempModelQuest.AnswerList = new List<MO_T_sj_answer>() { new MO_T_sj_answer() { Content = "dsdsdsdsdsdsss" } };
好了,留下脚印,有不对之处欢迎指正!谢谢




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值