Pracując w dowolnym języku programowania, tworzymy wiele zmiennych i funkcji w kodzie. Te funkcje i zmienne mogą być typu zdefiniowanego przez użytkownika, a niektóre z nich są wbudowane. Jedną wbudowaną funkcją, o której mogłeś słyszeć, jest funkcja konstruktora. Funkcja konstruktora jest tą samą funkcją tytułu, co tytuł klasy wywołany przez obiekt klasy automatycznie po utworzeniu obiektu. Jest ogólnie używany w kodzie do bezpośrednio zainicjowania niektórych wartości zmiennych. Konstruktor może być w kategorii domyślnej bez parametrów i może być sparametryzowana kategoria. W ramach tego przewodnika będziemy omawiać użycie obu tego typu konstruktorów w naszych przykładach kodu C# zaimplementowanych na Ubuntu 20.04. Zacznijmy od uruchomienia terminalu i zaktualizuj system przed wykonaniem czegokolwiek na powładzie za pomocą pakietu „Apt”.
Przykład nr 01: Domyślny konstruktor
Zacznijmy od prezentacji korzystania z domyślnego konstruktora w nowym pliku w Ubuntu 20.04. W tym celu spróbuj wykorzystać wieczną instrukcję „dotyk” Ubuntu, aby wygenerować plik, który musi zawierać „.Rozszerzenie CS ”na końcu dla programowania C#. Plik został pomyślnie wygenerowany w naszym bieżącym katalogu roboczym zgodnie z poleceniem listy „LS”.
Otwórz plik z katalogu domowego za pomocą edytora tekstu, aby uzyskać bardziej atrakcyjny i kolorowy wyświetlacz kodu jak poniżej. Musimy uruchomić ten kod z wykorzystaniem przestrzeni nazw systemu, który jest koniecznością w prawie każdym kodzie C# dla funkcji ogólnych. Następnie rozpoczęliśmy nazwę klasy „test” i zainicjowaliśmy w nim publiczny konstruktor „test ()”, aby wyświetlić niektóre wiadomości tekstowe na ekranie za pomocą funkcji WriteLine () z klasy konsoli „System” przestrzeni nazw „. Ten konstruktor jest domyślny, dlatego nie zawiera żadnych parametrów. Używamy tutaj funkcji sterownika Main (), która jest koniecznością w każdym programie. Używa tej samej metody WriteLine () do wyświetlania innego komunikatu wyświetlania na ekranie powłoki. Teraz musisz zrozumieć, że bez tworzenia obiektu „testu” klasy nie będziemy w stanie uruchomić konstruktora. Używamy więc nazwy klasy do utworzenia obiektu „OBJ”, a następnie „nowy” inicjator obiektów. Kiedy wykonujemy ten program, konsola.Instrukcja funkcji writeLine () zostanie najpierw wykonana. Następnie utworzenie tego obiektu wywoła funkcję konstruktora „testem”, aby wykonać konsolę.Oświadczenie WriteLine ().
Wracając do terminalu, opracowaliśmy nasz program C# z kompilatorem „MC” C# na Ubuntu 20.04. Plik „exe” dla tego pliku C# został wygenerowany na kompilacji zgodnie z instrukcją „LS”. Użyliśmy tego pliku „exe” do uruchomienia kodu skompilowanego C# z MCS-Runtime. Wyświetlono komunikat ciągu funkcji main (), a następnie komunikat ciągów konstruktora.
Przykład nr 02: Konstruktor w innej klasie
Wykazaliśmy wdrożenie konstruktora w tej samej klasie, w której stworzono obiekt jego klasy. Teraz będziemy patrzeć na konstruktora z obiektem jego klasy w innej klasie. Musisz otworzyć ten sam plik C#, aby zaktualizować kod. Tutaj korzystamy z dwóch klas, „testu” i „nowego”.
Klasa testowa zawiera domyślny „test” konstruktora, podczas gdy nowa klasa zawiera funkcję sterownika Main () dla tego programu. Użyliśmy funkcji writeLine () konsoli klasy dla „System”, aby wyświetlić niektóre wiadomości tekstowe na powładzie po wykonaniu main () i funkcji „test” konstruktora. Stworzyliśmy obiekt klasy „test” w funkcji Main () klasy „NOWOŚĆ”.
Następnie zapisaliśmy ten kod i skompilowaliśmy go. Następnie wykonaliśmy jego plik „exe” na skorcie z „mono-runtime”. Funkcja main () została wykonana i wyświetlona odpowiednią wiadomość. Następnie konstruktor klas testowych został wywołany za pomocą obiektu i wyświetlał jego komunikat ciągu.
Przykład nr 03: Domyślnie vs. Sparametryzowany konstruktor
Sparametryzowany konstruktor może być używany do inicjalizacji zmiennych z wartościami przekazanymi przez funkcję main () lub przez użytkownika w czasie wykonywania. W ramach tego kodu programu utworzyliśmy „test” pojedynczej klasy i zadeklarowaliśmy dwie zmienne, i.mi., Zmienna liczbowa „Wiek” i zmienna ciągła „Nazwa”. Następnie zaimplementowaliśmy domyślny konstruktor „test” tej klasy bez wartości parametrycznych. Służy tylko do wyświetlania niektórych komunikatów na powładzie za pomocą funkcji WriteLine (). Następnie zdefiniowaliśmy sparametryzowany konstruktor „test”, przyjmując dwie wartości z funkcji main () i inicjując zmienne „wiek” i „nazwa”. Wcześniej wyświetlił również prosty komunikat, że „wartości ustawiania przez konstruktor” za pomocą metody writeLine (). Funkcja zdefiniowana przez użytkownika „show ()” po prostu wykorzystuje zmienne „wiek” i „nazwa” w instrukcji WriteLine (), aby wyświetlić swoje wartości na powłoce. W ramach metody main () wyświetliśmy niektóre wiadomości tekstowe i utworzyliśmy obiekt klasy. Użyliśmy tego obiektu „OBJ”, aby wywołać funkcję „pokaż”, aby wyświetlić wiadomość. Czy ten program będzie mógł wykonać sparametryzowany konstruktor? Przejdźmy do części wykonania, aby zobaczyć, co się stanie.
Po skompilowaniu pliku kodu z MCS i uruchomieniu pliku EXE z Mono-Runtime, mamy następujące dane wyjściowe. Wyświetlono komunikat ciągu funkcji main (), a domyślny konstruktor został wykonany zgodnie z tworzeniem obiektu. Funkcja show () została wykonana i wyświetlona wartości zerowych w zamian. Dzieje się tak, ponieważ nie przekazaliśmy żadnych wartości do sparametryzowanego konstruktora w momencie tworzenia obiektu w funkcji Main (.
Naprawmy ten problem, ponownie aktualizując nasz kod. Bezpośrednio przypisaliśmy wartość liczby całkowitej i łańcuchowej do parametrów konstruktora „testu” klasy podczas tworzenia obiektu „OBJ”. Następnie ten sam obiekt został wykorzystany do wywołania funkcji show (), aby wyświetlić wartości.
Tym razem funkcja main () pominęła wykonanie domyślnego konstruktora i uruchomiła sparametryzowany konstruktor, ponieważ wartości zostały przekazane konstruktorowi w momencie tworzenia obiektów. Właśnie dlatego wartości zmiennych „wieku” i „nazwa” zostały również wyświetlone metodą show () przy użyciu tego samego obiektu „OBJ” klasy „test”.
Jeśli chcesz uruchomić oba konstruktory jeden po drugim, musisz utworzyć różne obiekty. Tak więc utworzyliśmy obiekt „OBJ1” dla domyślnego wywołania konstruktora i obiektu „OBJ2” dla sparametryzowanego wywołania konstruktora i jego przypisanej wartości. Jak przypisaliśmy wartość do sparametryzowanego konstruktora za pomocą obiektu „OBJ2”, musimy użyć tego samego obiektu „OBJ2”, aby wywołać funkcję show () do wyświetlania wartości. W przeciwnym razie nie zadziała.
W kompilacji i wykonaniu kodu komunikat funkcji main () zarówno komunikatów konstruktora, jak i funkcja show (), jak pokazano poniżej:
Wniosek
W akapicie wprowadzającym artykuł omówiliśmy użycie konstruktorów w programowaniu wraz z ich typami. Omówiliśmy również, w jaki sposób funkcja konstruktora różni się od normalnych funkcji zdefiniowanych przez użytkownika lub wbudowanej, takiej jak metoda main (. Opracowaliśmy przy użyciu domyślnych i sparametryzowanych konstruktorów za pośrednictwem naszych przykładów i jasno wyjaśniliśmy ich porównanie. Ponadto omówiliśmy proste i różne sposoby wywoływania obu typów konstruktorów za pomocą obiektów klasowych.