一個類在另一個類中以集合形式聲明爲屬性時應該注意的問題

標題:一個類在另一個類中以集合形式聲明爲屬性時應該注意的問題,先解釋一下,看下面的代碼吧


    [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" } };
好了,留下腳印,有不對之處歡迎指正!謝謝




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章