0
这是我的课Resharper建议只读字段,为什么?
public class EmailBuilder
{
public string Sender { get; set; }
public string Receiver { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public int SmtpServerPort { get; set; }
public string SmtpServerAddress { get; set; }
private MailMessage _mail;
public EmailBuilder()
{
this._mail = new MailMessage();
this.SmtpServerAddress = CmsConstants.smtpServerAddress;
this.SmtpServerPort = CmsConstants.smtpServerPort;
}
public void SetEmail(string receiver, string subject, string body)
{
this._mail.To.Add(receiver);
this._mail.From = new MailAddress("[email protected]");
this._mail.Subject = subject;
this._mail.Body = body;
this._mail.Bcc.Add("[email protected]");
}
}
ReSharper的是表明_mail要只读做,但不会使让我就为“setEmail”方法,这些属性将不会设置? 有人会在这里解释我是否误解了某些东西。
所以只读字段可以在任何地方改变其属性?我一直认为情况并非如此,只能在构造函数中更改其属性。 – grimsan55
那么你认为是不是真的然后:) – Evk
@ grimsan55你应该设计这样的对象不可改变自己 - 语言没有支持开箱即可使对象神奇不变。 – Evk