好吧,我們有一流的門票包含一個屬性:如何驗證正在添加到作爲集合的屬性的項目?
List<TaskComment> Comments;
我有它設置了一個背部屬性,這樣我可以做一些驗證:
private List<TaskComment> _comments;
public List<TaskComment> Comment
{
get
{ //stuff }
internal set
{ //stuff }
}
儘管設置的設置來內部,Add()方法仍然暴露在程序集之外。但無論如何,我想要做的就是在註釋對象的ticketId屬性被添加到集合時設置它。例如:
var ticket = new TaskTicket();
var comment = new TaskComment { //initializers }
ticket.Comments.Add(comment);
--inside the ticket:
public List<TaskComment> Comments
{
get{ //stuff }
set
{
((TaskComment)value).TicketId = this._ticketId;
}
}
但這不起作用。它告訴我它不能從TaskComment投射到MyLibrary.TaskComment。這對我來說真的沒有任何意義。但是,除此之外,這不正確。那麼,在將其添加到類的集合之前,我怎麼修改傳入的值/對象呢?
你是否打算爲你的列表添加一個項目?因爲這不是什麼'集' – 2012-07-16 18:29:25
對,我明白,setter是什麼讓我設置完整的集合在一次去 – Sinaesthetic 2012-07-16 19:18:48