標題:一個類在另一個類中以集合形式聲明爲屬性時應該注意的問題,先解釋一下,看下面的代碼吧
[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" } };
好了,留下腳印,有不對之處歡迎指正!謝謝