-1

我想从 MailAddress 类继承以使 COM 可见类,但 MailAddress 没有无参数构造函数,并且 COM 没有将参数传递给构造函数的机制。

https://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress%28v=vs.110%29.aspx

所以,我必须创建一个这样的类,考虑创建它然后修改它的属性:

public class Recipient : MailAddress
{
    public Recipient()
        : base("")//this is the contructor that takes less parameters, but can also add the other contructor parameters here
    {

    }
}

但后来我意识到我不能修改它的属性,因为它们都是只读的

有谁知道为什么他们是只读的?并且班级附件是一样的。

4

1 回答 1

2

MailAddress 类使用不可变模式——因此一旦创建了实例,就不能修改它(这种模式有一些好处——因为它对线程有很大帮​​助,因为没有锁争用问题)。

可以修改它放入 Message 类型的集合(to、from、cc 集合)。因此,您始终可以从其中一个实例中删除现有的 MailAddress 实例,然后创建一个新的 MailAddress 类,将其替换为修改后的值。

希望这可以帮助,

于 2015-04-30T17:03:19.640 回答