2013-02-19 25 views
14

Ho un progetto di app modulo finestra. Al momento tutto il mio codice è nel file Form1.cs che è il file predefinito. Ora ho circa 1300 linee di codice in questo singolo file. Voglio suddividere questo codice di un file in diversi file e voglio usare la parola chiave "parziale" (non voglio fare nulla di drastico). Così come dovrei aggiungere i fileaggiungere il file parziale al file di modulo esistente

destro progetto clic nome-> Aggiungi-> nuovo elemento -> risultati di classe in class1.cs, class2.cs e così via

, ma questo file viene convertito in un file di modulo modulo dopo la compilazione. Qual è il modo corretto di aggiungere in modo che il nuovo file si integri con il mio progetto esistente Form1.cs e Form1.cs[Design]?

+4

'partial' ha i suoi usi, ma io suggerirei ciò che potrebbe essere adatto è di suddividere il codice in unità logiche, creando classi separate da utilizzare w nella forma, invece di estendere il modulo su molti file. –

+0

Puoi dare un nome ai file come vuoi, ma assicurati che lo spazio dei nomi e il nome della classe siano identici e che siano entrambi contrassegnati come 'parziali '. –

+0

Stai aggiungendo un file "Form" o una "classe C#"? – Default

risposta

5

È necessario mantenere lo spazio dei nomi, il nome della classe e contrassegnarlo con partial. Il nome del file non è molto importante perché funzioni, ma è una buona pratica in modo che gli sviluppatori possano identificare rapidamente il contenuto del file.

Form1.cs

namespace TheSameNamespace 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
    } 

    // other definitions 
} 

Form1.designer.cs

namespace TheSameNamespace 
{ 
    partial class Form1 
    { 
     /// <summary> 
     /// Required designer variable. 
     /// </summary> 
     private System.ComponentModel.IContainer components = null; 

     // the rest of the designer class 
    } 
} 

Form1.Calculations.cs

namespace TheSameNamespace 
{ 
    partial class Form1 
    { 
     // calculation methods definitions 
    } 
} 

Form1.EventHandlers.cs

namespace TheSameNamespace 
{ 
    partial class Form1 
    { 
     // event handlers definitions 
    } 
} 

e così via ...

+1

..., tuttavia, di solito è una buona idea dare al file un nome utile (come 'Form1.Calculations.cs' e' Form1.EventHandlers.cs' e così via), in base al suo contenuto. – Nuffin

+0

Aggiornerò la risposta, grazie per il suggerimento. –

+1

... tuttavia, questo è quasi sempre inutile ed evitabile. La parzialità è eccellente per separare generato da codice utente, ma abusarne solo per compartimentare la logica dovrebbe essere riconsiderato. Al diavolo, preferirei codice over- # regionated di questo. –

0

La parola chiave è partial primarly per i file generati, che può essere estesa per il proprio codice - non v'è alcuna utilità nel dividere un singolo classe gonfiato in più parziali, ma se si vuole davvero farlo, allora è necessario:

  1. Creare una nuova classe.
  2. Rinominare la classe in modo che corrisponda alla propria classe (Form1.xxx.cs)
  3. Utilizzare la parola chiave parziale e regolare il nome e lo spazio dei nomi.

Per clearify:

Form1.cs

public partial class Form1 { /* ... */ } 

Form1.somepart.cs

public partial class Form1 { /* ... */ }