Omówienie klas częściowych w Visual Basic .NET

click fraud protection

Częściowe klasy to funkcja VB.NET, która jest używana prawie wszędzie, ale niewiele o niej napisano. Może to być spowodowane tym, że nie ma jeszcze wielu oczywistych aplikacji dla programistów. Podstawowym zastosowaniem jest sposób tworzenia rozwiązań ASP.NET i VB.NET w Visual Studio, gdzie jest to jedna z tych funkcji, które zwykle są „ukryte”.

Klasa częściowa jest po prostu definicją klasy podzieloną na więcej niż jeden plik fizyczny. Klasy częściowe nie mają znaczenia dla kompilatora, ponieważ wszystkie pliki tworzące klasę są po prostu scalane w jedną całość dla kompilatora. Ponieważ klasy są po prostu połączone i skompilowane, nie można mieszać języków. Oznacza to, że nie możesz mieć jednej częściowej klasy w C #, a drugiej w VB. Nie można również łączyć zespołów z częściowymi klasami. Wszystkie muszą być w tym samym zgromadzeniu.

Jest to często używane przez samo Visual Studio, szczególnie na stronach internetowych, gdzie jest to kluczowa koncepcja w plikach „kodowych”. Zobaczymy, jak to działa w Visual Studio, ale zrozumienie tego, co zmieniło się w Visual Studio 2005, kiedy zostało wprowadzone, jest dobrym punktem wyjścia.

instagram viewer

W Visual Studio 2003 „ukryty” kod aplikacji Windows znajdował się w sekcji o nazwie Region oznaczony „Kod wygenerowany przez Windows Form Designer”. Ale wciąż było tam wszystko w tym samym pliku i łatwo było wyświetlić i zmienić kod w regionie. Wszystko kodu jest dostępny dla Twojej aplikacji w .NET. Ale ponieważ część z nich jest kodem, który powinieneś nigdy nie zadzierajcie, było przechowywane w tym ukrytym regionie. (Regiony mogą być nadal używane do tworzenia własnego kodu, ale Visual Studio już ich nie używa).

W Visual Studio 2005 (Framework 2.0) Microsoft zrobił mniej więcej to samo, ale ukrył kod w innym miejscu: częściowej klasie w osobnym pliku. Możesz to zobaczyć na dole poniższej ilustracji:


Kliknij tutaj, aby wyświetlić ilustrację
Kliknij przycisk Wstecz w przeglądarce, aby powrócić

Jedną z różnic składniowych między Visual Basic i C # jest teraz to, że C # tego wymaga wszystko klasy częściowe kwalifikuje się za pomocą słowa kluczowego Częściowy ale VB nie. Twoja główna forma w VB.NET nie ma żadnych specjalnych kwalifikacji. Ale domyślna instrukcja klasy dla pustej aplikacji Windows wygląda następująco za pomocą C #:

publiczna klasa cząstkowa Form1: Form

Wybory projektowe Microsoft w takich rzeczach są interesujące. Kiedy Paul Vick, projektant Microsoft VB, napisał o tym wyborze projektu na swoim blogu Panopticon Central, debata na ten temat w komentarzach trwała dla stron i stron.

Zobaczmy, jak to wszystko działa z prawdziwym kodem na następnej stronie.

Na poprzedniej stronie wyjaśniono pojęcie klas cząstkowych. Na tej stronie przekształcamy jedną klasę w dwie klasy częściowe.

Oto przykładowa klasa z jedną metodą i jedną właściwością w projekcie VB.NET

 Klasa publiczna CombinedClass. Prywatny m_Property1 As String. Sub publiczny nowy (wartość ByVal jako ciąg) m_Property1 = wartość. Napis końcowy. Public Sub Method1 () MessageBox. Pokaż (m_Property1) End Sub. Właściwość Property1 () As String. Otrzymać. Zwraca m_Property1. End Get. Ustaw (wartość ByVal jako ciąg) m_Property1 = wartość. Zestaw końcowy. Zakończ właściwość. Klasa końcowa 

Tę klasę można wywołać (na przykład w kodzie zdarzenia Click dla obiektu Button) za pomocą kodu:

Dim ClassInstance as New _. CombinedClass („Informacje o klasach częściowych Visual Basic”) ClassInstance. Metoda 1 ()

Możemy podzielić właściwości i metody klasy na różne pliki fizyczne, dodając dwa nowe pliki klas do projektu. Nazwij pierwszy plik fizyczny Partial.methods.vb i nazwij drugi Partial.properties.vb. Fizyczne nazwy plików muszą być różne, ale częściowe nazwy klas będą takie same, aby Visual Basic mógł je scalić podczas kompilacji kodu.

Nie jest to wymóg składniowy, ale większość programistów podąża za przykładem w Visual Studio użycia „kropkowanych” nazw dla tych klas. Na przykład Visual Studio używa domyślnej nazwy Form1.Designer.vb dla klasy częściowej dla formularza Windows. Pamiętaj, aby dodać słowo kluczowe Częściowe dla każdej klasy i zmienić nazwę klasy wewnętrznej (nie nazwę pliku) na tę samą nazwę. Użyłem wewnętrznej nazwy klasy: PartialClass.

Poniższa ilustracja pokazuje cały kod dla przykładu i kod w akcji.


Kliknij tutaj, aby wyświetlić ilustrację
Kliknij przycisk Wstecz w przeglądarce, aby powrócić

Visual Studio „ukrywa” częściowe klasy, takie jak Form1.Designer.vb. Na następnej stronie dowiadujemy się, jak to zrobić za pomocą właśnie utworzonych klas cząstkowych.

Poprzednie strony wyjaśniają pojęcie klas częściowych i pokazują, jak je kodować. Ale Microsoft stosuje jeszcze jedną sztuczkę z klasami częściowymi wygenerowanymi przez Visual Studio. Jednym z powodów ich użycia jest oddzielenie logiki aplikacji od kodu interfejsu użytkownika (interfejsu użytkownika). W dużym projekcie te dwa typy kodu mogą być nawet tworzone przez różne zespoły. Jeśli znajdują się w różnych plikach, można je tworzyć i aktualizować z większą elastycznością. Ale Microsoft robi jeszcze jeden krok i ukrywa częściowy kod również w Eksploratorze rozwiązań. Załóżmy, że chcieliśmy ukryć metody i właściwości klas cząstkowych w tym projekcie? Jest sposób, ale nie jest to oczywiste, a Microsoft nie mówi ci, jak to zrobić.

Jednym z powodów, dla których nie widzisz używania klas częściowych zalecanych przez Microsoft, jest to, że tak naprawdę nie jest jeszcze bardzo dobrze obsługiwane w Visual Studio. Na przykład ukrycie utworzonych właśnie klas Partial.methods.vb i Partial.properties.vb wymaga zmiany vbproj plik. To jest plik XML, który nie jest nawet wyświetlany w Solution Explorer. Można go znaleźć w Eksploratorze Windows wraz z innymi plikami. Plik vbproj pokazano na poniższej ilustracji.


Kliknij tutaj, aby wyświetlić ilustrację
Kliknij przycisk Wstecz w przeglądarce, aby powrócić

W ten sposób dodamy całkowicie pustą klasę „root” (pozostały tylko nagłówek Class i instrukcja End Class) i uzależniamy od niej obie nasze klasy częściowe. Dodaj więc kolejną klasę o nazwie PartialClassRoot.vb i ponownie zmień nazwę wewnętrzną na PartialClass, aby pasowała do dwóch pierwszych. Tym razem mam nie użył słowa kluczowego Częściowo, aby dopasować sposób, w jaki robi to Visual Studio.

Tutaj przyda się trochę znajomości XML. Ponieważ plik ten będzie musiał zostać zaktualizowany ręcznie, musisz poprawnie ustawić składnię XML. Możesz edytować plik w dowolnym edytorze tekstowym ASCII - Notepad działa dobrze - lub w edytorze XML. Okazuje się, że masz świetny w Visual Studio i to pokazano na poniższej ilustracji. Ale nie możesz edytować pliku vbproj w tym samym czasie, w którym edytujesz projekt, w którym się znajduje. Zamknij projekt i otwórz tylko plik vbproj. Plik powinien zostać wyświetlony w oknie edycji, jak pokazano na poniższej ilustracji.

(Zanotuj Skompilować elementy dla każdej klasy. Zależny podelementy należy dodać dokładnie tak, jak pokazano na poniższej ilustracji. Ta ilustracja została stworzona w VB 2005, ale została przetestowana również w VB 2008).


Kliknij tutaj, aby wyświetlić ilustrację
Kliknij przycisk Wstecz w przeglądarce, aby powrócić

Dla wielu z nas prawdopodobnie wystarczy wiedzieć, że istnieją częściowe klasy, więc wiemy, czym one są, gdy próbujemy wyśledzić błąd w przyszłości. W przypadku rozwoju dużych i złożonych systemów mogą one być małym cudem, ponieważ mogą pomóc w uporządkowaniu kodu w sposób, który byłby wcześniej niemożliwy. (Możesz także mieć częściowe struktury i częściowe interfejsy!) Ale niektórzy ludzie doszli do wniosku, że Microsoft wynalazł je tylko z wewnętrznych powodów - aby usprawnić generowanie kodu. Autor Paul Kimmel posunął się nawet do tego, że zasugerował, że Microsoft stworzył częściowe klasy, aby obniżyć koszty, ułatwiając outsourcing prac programistycznych na całym świecie.

Może. To coś, co mogą zrobić.

instagram story viewer