Condividi tramite


Refactoring di classi e tipi (Progettazione classi)

Quando si effettua il refactoring del codice, si modifica la struttura interna di quest'ultimo e il modo in cui i relativi oggetti vengono progettati, rendendo il codice più comprensibile, gestibile ed efficiente senza modificarne il comportamento esterno. Per ridurre le operazioni necessarie e la possibilità di introdurre bug durante il refactoring del codice Visual C# .NET, Visual Basic .NET o C++ nel progetto di Visual Studio, usare Progettazione classi e la finestra Dettagli classe.

Nota

I file di un progetto possono essere di sola lettura perché il progetto è sotto il controllo del codice sorgente e non è stato estratto, perché si tratta di un progetto a cui si fa riferimento o perché i file sono contrassegnati come di sola lettura sul disco.Quando si lavora in un progetto in uno di questi stati, è possibile salvare il lavoro in vari modi a seconda dello stato del progetto.Ciò vale per il refactoring del codice e anche per il codice che viene modificato in altro modo, ad esempio tramite modifica diretta.Per altre informazioni, vedere Display of Read-Only Information.

Attività comuni

Attività

Contenuto di supporto

Refactoring di classi: è possibile usare le operazioni di refactoring per suddividere una classe in classi parziali o per implementare una classe di base astratta.

Uso di interfacce: in Progettazione classi è possibile implementare un'interfaccia nel diagramma classi connettendola a una classe che fornisce il codice per i metodi di interfaccia. Se si usa Visual C#, è anche possibile estrarre uno o più membri pubblici da un tipo in una nuova interfaccia.

Refactoring di tipi, membri dei tipi e parametri: con Progettazione classi è possibile apportare facilmente modifiche come ad esempio rinominare un tipo o i membri dei tipi. È possibile eseguire l'override dei membri dei tipi o spostarli da un tipo a un altro. È possibile creare facilmente tipi nullable. E, se si usa Visual C#, è possibile riordinare i parametri del metodo.

Implementazione di classi di base astratte

È possibile usare Progettazione classi per implementare una classe astratta.

Per questa procedura si presuppone quanto segue:

  • Il progetto contiene una classe astratta.

  • La classe astratta contiene membri astratti.

  • La classe astratta è la classe di base in una relazione di ereditarietà con un'altra classe. La classe derivata non deve essere una classe astratta.

Implementare una classe astratta

  • Fare clic con il pulsante destro del mouse sulla classe derivata, scegliere IntelliSense, quindi fare clic su Implementa classe astratta. Tutti i membri astratti della classe di base vengono implementati nella classe derivata.

Per altre informazioni, vedere Procedura: Creare ereditarietà tra tipi (Progettazione classi) e Procedura: creare tipi utilizzando Progettazione classi.

Estrazione di membri in un'interfaccia

È possibile estrarre uno o più membri pubblici da un tipo in una nuova interfaccia.

Per estrarre membri in una nuova interfaccia

  1. In Progettazione classi fare clic con il pulsante destro del mouse sul tipo che contiene il membro o i membri da estrarre, scegliere Refactoring, quindi fare clic su Estrai interfaccia.

    Nella finestra di dialogo Estrai interfaccia verranno visualizzati i valori predefiniti per il nome dell'interfaccia e il nome del file di codice in cui verrà dichiarato. Accettare i valori predefiniti o modificarli.

  2. Nel riquadro Selezionare i membri pubblici per l'interfaccia selezionare o deselezionare la casella di controllo accanto ai membri da estrarre nella nuova interfaccia, quindi fare clic su OK.

    Verrà creata una nuova interfaccia e il file in cui è contenuta verrà aggiunto al progetto.

Override dei membri dei tipi

In Progettazione classi è possibile consentire ai membri come i metodi e le proprietà in una classe figlio di eseguire l'override dei membri ereditati da una classe di base. L'override di un membro è possibile solo se si verifica la seguente circostanza:

  • Il metodo di base da sottoporre a override deve essere virtuale, astratto o override. Non può essere non virtuale o statico.

Per eseguire l'override di un membro

  1. Nel diagramma classi fare clic con il pulsante destro del mouse su una forma della classe e scegliere IntelliSense, quindi fare clic su Override membri.

    Viene visualizzata una finestra di dialogo con i membri di cui è possibile eseguire l'override.

  2. Dall'elenco specificare un membro.

    Un membro con lo stesso nome, modificatore di accesso e valore restituito viene visualizzato nella classe e la relativa proprietà Modificatore ereditarietà viene impostata su Overrides in Visual Basic o override in C#.

Ridenominazione di tipi e membri dei tipi

In Progettazione classi è possibile rinominare un tipo o un membro di un tipo nel diagramma classi o nella finestra Proprietà. Nella finestra Dettagli classe è possibile modificare il nome di un membro ma non di un tipo. La ridenominazione di un tipo o di un membro di un tipo verrà propagata a tutte le finestre e i percorsi di codice in cui è presente il nome precedente.

Per cambiare un nome in Progettazione classi

  1. Nel diagramma classi selezionare il tipo o il membro.

    Il nome del membro diventerà modificabile.

  2. Digitare il nuovo nome per il tipo o il membro del tipo.

Per cambiare un nome nella finestra Dettagli classe

  1. Per visualizzare la finestra Dettagli classe, fare clic con il pulsante destro del mouse sul tipo o sul membro del tipo, quindi scegliere Dettagli classe.

    Verrà visualizzata la finestra Dettagli classe.

  2. Nella colonna Nome modificare il nome del membro del tipo.

  3. Per spostare lo stato attivo dalla cella, premere INVIO oppure fare clic all'esterno della cella.

    Nota

    Nella finestra Dettagli classe è possibile modificare il nome di un membro ma non di un tipo.

Per cambiare un nome nella finestra Proprietà

  1. Nel diagramma classi o nella finestra Dettagli classe fare clic con il pulsante destro del mouse sul tipo o sul membro, quindi scegliere Proprietà.

    Verrà visualizzata la finestra Proprietà con le proprietà relative al tipo o al membro del tipo.

  2. Nella proprietà Nome modificare il nome del tipo o del membro del tipo.

    Il nuovo nome verrà propagato a tutte le finestre e i percorsi di codice del progetto corrente in cui è presente il nome precedente.

Riordinamento dei parametri

In Progettazione classi è possibile modificare l'ordine dei parametri dei metodi nei tipi.

Nota

I parametri facoltativi devono essere gli ultimi parametri presenti nell'elenco di parametri.Per informazioni sulla creazione di parametri facoltativi con Progettazione classi, vedere Adding Parameters to Methods.

Per modificare l'ordine dei parametri

  1. Nel diagramma classi espandere la forma del tipo, quindi il raggruppamento Metodi.

  2. Nel raggruppamento Metodi fare clic con il pulsante destro del mouse sul metodo con i parametri da riordinare, scegliere Refactoring, quindi fare clic su Riordina parametri.

    Verrà visualizzata la finestra di dialogo Riordina parametri.

  3. Nella finestra di dialogo Riordina parametri spostare i parametri nell'ordine desiderato, quindi fare clic su OK.

    L'ordine dei parametri cambierà nel codice e nella forma nel diagramma classi.

Spostamento dei membri dei tipi da un tipo a un altro

In Progettazione classi è possibile spostare un membro del tipo da un tipo a un altro, se entrambi sono visibili nel diagramma classi corrente.

Per spostare un membro da un tipo a un altro

  1. In un tipo visibile nell'area di progettazione fare clic con il pulsante destro del mouse sul membro da spostare in un altro tipo, quindi scegliere Taglia.

  2. Fare clic con il pulsante destro del mouse sul tipo di destinazione, quindi scegliere Incolla.

    La proprietà verrà rimossa dal tipo di origine e visualizzata in quello di destinazione.

Argomenti correlati

Titolo

Descrizione

Visualizzazione dei tipi e delle relazioni (Progettazione classi)

Progettazione di classi e tipi (Progettazione classi)