Domanda

Uso il tasto destro > Refactor > Encapsultate field per avere il mio accessor ogni volta. Il problema è quando creo una nuova classe, posso avere più di 10 attributi ed è lungo fare 1 per 1 per ogni strumento di accesso. C'è un modo più veloce per crearli?

Grazie per il tuo tempo.

È stato utile?

Soluzione

Se si crea una nuova classe, è possibile utilizzare frammenti di codice per creare campi incapsulati anziché prima creare il campo e quindi incapsularlo. In C #, le scorciatoie sono prop e propg (per set privato).

Altri suggerimenti

Sembra che il refactoring incorporato in studio supporti solo un singolo campo alla volta per il refactoring Encapsulate Field. Refactor Pro! ( http://www.devexpress.com/Products/Visual_Studio_Add-in/Refactoring/ ) o Resharper ( http://www.jetbrains.com/resharper/index. html ) entrambi supportano l'incapsulamento di più campi.

Potresti essere in grado di immaginarti e mettere insieme una macro che ti consenta di selezionare più campi e quindi incapsulare ciascuno, ma le macro VS non sono la mia palla di cera.

In C # 3.0, la nuova sintassi della proprietà ti salva la necessità di dichiarare il campo & amp; implementare gli accessori. La loro sintassi è simile a:

public string Name { get; private set; }

Inoltre, voglio sottolineare che per i membri interni, le proprietà insignificanti hanno un valore molto scarso sui campi interni, poiché hai il controllo sia del chiamante che dell'implementazione: puoi passare a una proprietà in futuro, senza molto lavoro .

Anche per i membri pubblici, pensare che puoi rendere il tuo codice a prova di futuro semplicemente facendo campi di dati pubblici nelle proprietà è miope. Per lo meno, dovresti aggiungere il riferimento indiretto al tuo costruttore (con una fabbrica) e alla tua interfaccia (con un'interfaccia). Richiede inoltre una profonda riflessione su come i consumatori della tua API si aspetteranno che tu lavori su più versioni. È davvero difficile e vale la pena farlo solo se sei un fornitore di API, a mio avviso.

Nel mio codice, il motivo principale per cui utilizzo le proprietà è perché molti strumenti che usano la riflessione guardano le proprietà ma non i campi. Penso che sia un errore, ma è così che funzionano gli strumenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top