Collection类型的集合,定义只能Get时,可以通过语法糖赋值
1.条件
类型定义:![Collection定义](https://img2018.cnblogs.com/blog/980223/201909/980223-20190921181257577-900850333.png)
属性定义:![属性定义](https://img2018.cnblogs.com/blog/980223/201909/980223-20190921181528623-383876815.png)
使用:![使用](https://img2018.cnblogs.com/blog/980223/201909/980223-20190921181712437-217972278.png)
2.疑问:ICollection
的实现,定义为只能Get,却能通过特殊写法 语法糖 来赋值???
引用:
using System.Net.Mail;
创建对象:
new MailMessage { To = { string }, Subject = string, Body = string, IsBodyHtml = bool };
3.因为
MailMessage.To
的类型是MailAddressCollection
,其继承了Collection<System.Net.Mail.MailAddress>
,实现了Add
方法,参数是string
,与To = {string}
相符
ICollection<T>
:定义的Add
方法可以通过语法糖来实现赋值(关于C#语法糖),而Collection<T>
则是ICollection<T>
的泛型实现,在继承Collection<T>
之后,只需实现Add
方法,并且可以自定义参数,这区别于
ICollection<T>
,就能获得语法糖的支持。
另一种方法:扩展ICollection<T>
的Add
方法也能实现
随遇而安,积极向上