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