2013-02-19 29 views
14

Mam projekt Window Form App. W tej chwili cały mój kod znajduje się w pliku Form1.cs, który jest plikiem domyślnym. Teraz mam około 1300 linii kodu w tym pojedynczym pliku. Chcę rozbić ten jeden kod pliku na kilka plików i chcę użyć "częściowego" słowa kluczowego (nie chcę robić nic drastycznego). Więc jak mam dodać plikidodać częściowy plik do istniejącego pliku formularza

kliknięcie prawym projekt Name-> Add-> Nowa pozycja -> Klasa wyniki do class1.cs, class2.cs i tak dalej

ale ten plik konwertuje do pliku formularza forma po kompilacji. Jaki jest prawidłowy sposób dodawania, aby nowy plik był zintegrowany z moim istniejącym projektem Form1.cs i Form1.cs[Design]?

+4

'partial' ma swoje zastosowania, ale sugeruję To, co może być odpowiednie, to złamanie kodu w jednostkach logicznych, tworzenie oddzielnych klas do użycia w w formularzu, zamiast rozciągać formularz na wiele plików. –

+0

Możesz nazwać pliki, które chcesz, po prostu upewnij się, że przestrzeń nazw i nazwa klasy są identyczne i obie są oznaczone jako "częściowe". –

+0

Czy dodajesz plik "Form" lub "klasę C#"? – Default

Odpowiedz

5

Musisz zachować przestrzeń nazw, nazwę klasy i oznaczyć ją przy pomocy partial. Nazwa pliku nie jest tak ważna, aby działała, ale jest to dobra praktyka, aby programiści mogli szybko zidentyfikować zawartość pliku.

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 
    } 
} 

i tak dalej ...

+1

... jednak zazwyczaj dobrym pomysłem jest nadanie plikowi użytecznej nazwy (np. 'Form1.Calculations.cs' i' Form1.EventHandlers.cs' itd.), Zgodnie z jego zawartością. – Nuffin

+0

Zaktualizuję odpowiedź, dziękuję za sugestię. –

+1

... jednak jest to prawie zawsze niepotrzebne i możliwe do uniknięcia. Częściowość jest doskonała do oddzielania wygenerowanego kodu od kodu użytkownika, ale nadużywanie jej tylko w celu oddzielenia logiki należy ponownie rozważyć. Cholera, wolałbym ponad regionowy kod niż ten. –

0

partial słowo kluczowe jest primarly dla wygenerowanych plików, który może zostać przedłużony przez własnego kodu - nie ma sensu dzielenie pojedyncza rozdęta klasa na wiele części, ale jeśli naprawdę chcesz to zrobić, musisz:

  1. Utwórz nową klasę.
  2. Zmień nazwę klasy, aby pasowała do Twojej klasy (Form1.xxx.cs)
  3. Użyj częściowego słowa kluczowego i dopasuj nazwę oraz przestrzeń nazw.

Aby clearify:

Form1.cs

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

Form1.somepart.cs

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