Domanda

Se guardo alcune classi nel framework, usando reflector, vedo che i moduli e i controlli utente sono resi privati ??e nidificati in una classe genitore.

Ad esempio, ho un controllo che utilizza un modulo popup specifico per quel controllo. Al momento, rendo accessibile il modulo pop-up amico. Se volessi farlo nel modo quadro, lo renderei privato e lo anniderei nella classe di controllo. Se lo faccio, tuttavia, non posso più utilizzare l'ide per progettare il modulo e ottengo errori quando provo a compilare. Quindi, ho 2 domande:

(1) Microsoft fa qualcosa all'ultimo minuto per nidificare tutte le cose private?

(2) È il loro modo preferito o devo attenermi ai miei amici accessor?

È stato utile?

Soluzione

La forma nidificata è migliore, perché impone l'incapsulamento corretto e significa che il controllo finale finirà in un bel pacchetto ordinato per la distribuzione. Se nessuno di questi è un problema per te, continua a fare a modo tuo. Ma se vuoi almeno provare a nidificare la classe, puoi fare qualcosa del genere:

  1. Usa il designer per creare il tuo modulo nidificato al di fuori della classe come faresti normalmente.
  2. Aggiungi un secondo modulo vuoto come modulo nidificato privato come negli esempi CLR con lo stesso nome del modulo creato nel passaggio 1.
  3. Esegui la migrazione del codice da * .designer.vb o * .designer.cs per il tuo primo modulo al costruttore per il tuo 2o modulo. Sarà principalmente solo una grande copia / incolla.
  4. Rimuovi il modulo dal passaggio 1. Potresti voler conservare spostandolo in un progetto di libreria di classi separato in modo da poterlo utilizzare quando è necessario apportare modifiche.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top