码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-02-05 16:30:21      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:c#   泛型      

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

    [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" } };
好了,留下脚印,有不对之处欢迎指正!谢谢




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

标签:c#   泛型      

原文地址:http://blog.csdn.net/xuejunling/article/details/43527819

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!