In this Tutorial von Josh Smith, ein Feld als nur lesbar definiert:Warum einen readonly-Modifizierer für ein Feld verwenden, das sich ändert?
public class CustomerRepository
{
readonly List<Customer> _customers;
...
public CustomerRepository(string customerDataFile)
{
_customers = LoadCustomers(customerDataFile);
}
...
}
und später die Nur-Lese-Liste wird _customers
, aktualisiert:
public void AddCustomer(Customer customer)
{
if (customer == null)
throw new ArgumentNullException("customer");
if (!_customers.Contains(customer))
{
_customers.Add(customer);
if (this.CustomerAdded != null)
this.CustomerAdded(this, new CustomerAddedEventArgs(customer));
}
}
Wie dies erlaubt ist und was ist der Punkt, Readonly verwenden?
Was wäre, wenn es ein Objekt wäre, wäre ich in der Lage, neue Werte für seine Eigenschaften zu setzen? – Saeid
@Said Ja - Sie ändern nicht den Wert der Variablen, die das tut, also verletzen Sie nicht den Modifizierer 'readonly'. –