Sono nuovo di C # proveniente da uno sfondo Java. Sto lavorando a un incarico da portare a casa per un'intervista di codifica. Normalmente scrivo il mio codice come segue (Java):
public class Test {
//fields
private string fieldA;
private int fieldB;
public Test () {
//.....
}
public String getFieldA() {
return fieldA;
}
//ETC.
}
Il punto è che io uso getter / setter come sopra. Ora, ho un incarico di programmazione da fare per un colloquio di lavoro, e usando C # mi sono imbattuto in proprietà automatiche. Inizialmente ero un po 'confuso, ma capisco cosa fa ora e l'ho usato.
Quindi per i campi vorrei scrivere
public string fieldA {get; set;}
Ci sembra strano dichiarare pubblici i campi in questo modo e non viola alcuni principi di incapsulamento OOP?
La mia domanda è: dovrei semplicemente andare avanti e usare le proprietà automatiche per mostrare agli intervistatori che so di cosa si tratta? Nel caso in cui voglio evitare di impostare un campo, potrei semplicemente usare:
public string fieldA {get; private set;}
Ma sembrerebbe che io non segua le "regole" di incapsulamento, ovviamente non vorrei rischiare. Potrei scriverlo come faccio in Java.
In generale, qual è la tua opinione sull'uso delle proprietà automatiche?