C# 为什么.net';s MailMessage类是只读的吗?

C# 为什么.net';s MailMessage类是只读的吗?,c#,email,C#,Email,我有一个MailAddressCollection,其中包含了我想发送电子邮件的所有地址,但不能简单地拥有: myMessage.To = myMailAddressCollection; 我必须做: foreach (MailAddress address in myMailAddressCollection) { myMessage.To.Add(address); } 有人能解释一下为什么类是这样配置的吗?我是否缺少其他方法来分配给“收件人”、“抄送”或“密件抄送”

我有一个MailAddressCollection,其中包含了我想发送电子邮件的所有地址,但不能简单地拥有:

myMessage.To = myMailAddressCollection;
我必须做:

foreach (MailAddress address in myMailAddressCollection)  
{  
    myMessage.To.Add(address);  
}

有人能解释一下为什么类是这样配置的吗?我是否缺少其他方法来分配给“收件人”、“抄送”或“密件抄送”属性?

邮件类希望保护其属性,这是正确的封装


如果您的任务支持AddRange方法,那么它会变得简单一些,但就目前而言,您的代码将变得非常简单

我知道这很旧,但万一有人无意中发现:

MailAddressCollection.Add可以接受以逗号分隔的电子邮件地址字符串。MailAddressCollection.ToString方法返回包含的电子邮件地址的逗号分隔字符串

所以OP可以做到这一点:

myMessage.To.Add(myMailAddressCollection.ToString());

AddRange方法仍然是首选。

是的,AddRange将是理想的。。。哦,我想这不是世界末日!