Sono sicuro di aver visto da qualche parte che posso fare quanto segue usando un attributo sopra il mio metodo Init(), che dice al compilatore che il metodo Init() deve essere chiamato solo dal costruttore, permettendo così il readonly campo da impostare. Ho dimenticato però come viene chiamato l'attributo e non riesco a trovarlo su google.Come si imposta un campo di sola lettura in un metodo di inizializzazione che viene chiamato dal costruttore?
public class Class
{
private readonly int readonlyField;
public Class()
{
Init();
}
// Attribute here that tells the compiler that this method must be called only from a constructor
private void Init()
{
readonlyField = 1;
}
}
parametri out, yuk! –
@Chuck: Hey, non ho mai detto che fosse carina. –
L'ho risolto usando Reflection. Vedi sotto .. – Derar