meine KlasseResharper, der nur Lesefeld vorschlägt, warum? Dies ist
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 ist, dass _mail was darauf hindeutet, ist nur lesbar gemacht werden, würde aber nicht das machen, so dass in meiner „SetEmail“ Methode, die diese Eigenschaften nicht festgelegt werden? Jemand kümmert sich darum zu erklären, wenn ich hier etwas falsch verstehe.
Ein Feld, das schreibgeschützt ist, kann also seine Eigenschaften überall ändern? Ich habe immer gedacht, dass das nicht der Fall war und konnte nur seine Eigenschaften innerhalb des Konstruktors geändert haben. – grimsan55
Nun, was Sie dachten, ist nicht wahr dann :) – Evk
@ Grimsan55 und Sie sollten solche Objekt unveränderlich selbst gestalten - Sprache hat keine Unterstützung aus der Box, um Objekte magisch unveränderlich zu machen. – Evk