Ho una classe, questa classe può essere vuota. Questa classe ha solo proprietà pubbliche di tipo String. Quando questa classe si trova in uno stato vuoto, ciò significa che tutte le proprietà hanno il valore di String.Empty.Come implementare correttamente il mio campo vuoto o zero statico
1) Con un campo statico pubblico , è possibile modificare le proprietà di Class.Empty.
2) Non vedo che un pubblico statico proprietà getter dovrebbe restituire un nuovo oggetto vuoto (impostare tutti i campi per svuotare manualmente) ogni volta. Considero quella cattiva pratica.
3) Una soluzione alternativa è implementare la propria classe . IsNullOrEmpty (Classe obj).
4) A non statico proprietà booleane pubbliche obj. IsEmpty.
Nell'altra classe dove questa classe viene utilizzato, la proprietà non sarà mai nulla. L'altra classe viene restituita da un metodo (di un'altra classe) che lo inizializza correttamente.
L'unico caso in cui la proprietà potrebbe essere nullo, è se è stato inserito all'esterno di tale metodo, che quindi lo fa comunque essere in uno stato non valido.
Una volta che le proprietà sono impostate, non dovrebbero mai cambiare. Quindi la risposta è no, giusto? –
Modifica risposta per riflettere commento ... –
Questo è vero, è così che inizialmente ho impostato le proprietà, tramite il costruttore. Purtroppo ho dimenticato di menzionare che il tipo verrà serializzato con XmlSerializer.A mia conoscenza, ciò richiede get/setter pubblici per tutte le proprietà serializzate. Tuttavia, se implemento IXmlSerializable (questa è una classe piccola destinata a non cambiare), non sono necessario i setter pubblici. Corretta? Se questa classe dovesse cambiare, non solo devo modificare/aggiungere campi, ma anche le stringhe nelle implementazioni IXmlSerializable? –