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

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


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

        public List IDList { get; set; }

        public List BindList { get; set; }

        public List UserList { get; set; }

        public int Classid { get; set; }


}

明白了吧,
public List 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_quest tempModelQuest = new MO_T_sj_quest();

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

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

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




你可能感兴趣的:(Asp.Net)