Spis treści[Ukryć][Pokazać]
- 1. Czym dokładnie jest C#?
- 2. Co odróżnia C# od C?
- 3. Czym dokładnie jest klasa?
- 4. Czym dokładnie jest przedmiot?
- 5. Jaka jest różnica między terminami statyczny, publiczny i nieważny?
- 6. Zdefiniuj Konstruktory.
- 7. Czym jest C# w wyrzucaniu śmieci?
- 8. Co dokładnie oznacza struktura w C#?
- 9. Jak kompiluje się kod C#?
- 10. Jasno opisz różne klasy C#.
- 11. Czym dokładnie są tablice Jagged Array?
- 12. Jaka jest różnica między parametrami out i ref?
- 13. Co to jest destruktor w C#?
- 14. Co to jest indeksator w C#?
- 15. Jaka jest różnica między kodem zarządzanym a niezarządzanym?
- 16. Opisz serializację.
- 17. Jak w C# różnią się od siebie pola i właściwości?
- 18. Jak szczegółowo opisać użycie instrukcji w C#?
- 19. Jak zaimplementowałbyś wiele interfejsów o tej samej nazwie metody w tej samej klasie?
- 20. Jaka jest różnica między zadaniem a wątkiem w języku C#?
- 21. Jaka jest funkcja finalize w C#?
- 22. Rozróżnij bloki finalizuj i finalizuj.
- 23. Opisz szczegółowo metodę usuwania w języku C#.
- 24. Co to jest przeciążanie metody C#? Wyjaśniać.
- 25. Jaka jest różnica między tylko do odczytu a stałymi?
- 26. Czym są Kontrola Użytkownika i Kontrola Niestandardowa?
- 27. Co to jest delegat multiemisji w języku C#?
- 28. Czym dokładnie jest łączenie obiektów w C#?
- 29. Czym dokładnie są generyki w C#.NET?
- 30. Czy można zastąpić prywatną metodę wirtualną?
- 31. Rozróżnić przeciążanie metod i nadpisywanie metod w C#?
- 32. Jaka jest różnica między String i StringBuilder w C#?
- 33. Czym właściwie są delegaci?
- 34. Kiedy należy używać wielowątkowości w C#, a kiedy należy jej unikać?
- 35. Co to jest delegat multiemisji w języku C#?
- 36. Jaka jest w C# różnica między późnym wiązaniem a wczesnym wiązaniem?
- 37. Rozróżnić Directcast i Ctype?
- 38. Jak wykorzystywany jest HashSet w C#?
- 39. Proszę wyjaśnić łączenie wątków w C#.
- 40. Jaka jest różnica między słowami kluczowymi Const i ReadOnly w C#?
- 41. Jakie szczegóły dotyczące pliku C# XSD możesz podać?
- 42. Co oznaczają dla Ciebie właściwości Get i Set Accessor?
- 43. Czym dokładnie jest wstrzykiwanie zależności w C#?
- Wnioski
C# (wcześniej znany jako C ostry) to język programowania obiektowego, który jest często używany przez programistów do wykonywania kilku czynności i osiągania wielu celów.
Języki programowania obiektowego, takie jak C++, Python i Java, są dostępne w różnych odmianach. Te języki programowania są zaprojektowane do działania w określonej strukturze. Podobnie C# jest tworzony i rozwijany dla konkretnego frameworka, a mianowicie NET.
Framework .NET został stworzony przez Microsoft. Zapewnia rozległą platformę do tworzenia aplikacji, deklaracji, instrukcji aplikacji i tak dalej. C# może być używany do tworzenia stron internetowych, gier, aplikacje mobilne, aplikacje Windows i inne podobne projekty.
Przy takich zaletach zastosowanie C# rozszerzyło się, a zapotrzebowanie na specjalistów potrafiących go dokładnie wykorzystać wzrosło dwukrotnie. Ponieważ C# jest tak popularny język programowania, wiele dużych i małych firm opiera na nim swoje produkty.
Ćwicz więc podstawowe i zaawansowane pytania w języku C#, aby ukończyć rozmowy kwalifikacyjne.
1. Czym dokładnie jest C#?
Microsoft C# to współczesny, uniwersalny, programowanie obiektowe język. Język C# jest przeznaczony dla infrastruktury Common Language Infrastructure (CLI), która obejmuje kod wykonywalny i środowisko uruchomieniowe, które umożliwia korzystanie z wielu języków wysokiego poziomu w różnych systemach komputerowych i architekturach.
2. Co odróżnia C# od C?
C jest zwykle znany jako język proceduralny, podczas gdy C# jest bardziej zorientowany obiektowo. Główną różnicą jest to, że C# umożliwia automatyczne wyrzucanie elementów bezużytecznych za pośrednictwem środowiska uruchomieniowego języka wspólnego (CLR), podczas gdy C nie. C# wymaga uruchomienia platformy .NET, podczas gdy C jest językiem niezależnym od platformy.
3. Czym dokładnie jest klasa?
Klasa służy jako szablon do budowania obiektów. Wraz z technikami ma atrybuty. Z jednej klasy możemy stworzyć kilka instancji obiektu.
4. Czym dokładnie jest przedmiot?
Instancja klasy znana jako obiekt to sposób, w jaki uzyskujemy dostęp do funkcji klasy. Aby skonstruować obiekt, możemy użyć słowa kluczowego „new”. Przechowywane są funkcje, składowe danych i zachowanie klasy, która tworzy obiekt w pamięci.
5. Jaka jest różnica między terminami statyczny, publiczny i nieważny?
W dowolnym miejscu programu można uzyskać dostęp do publicznie zdefiniowanych zmiennych. Dostęp do zmiennych statycznych można uzyskać globalnie, bez konieczności budowania instancji klasy. W języku C# modyfikator typu o nazwie Void służy do wskazywania zwracanego typu metody.
6. Zdefiniuj Konstruktory.
Konstruktor jest funkcją składową specyficzną dla klasy. Po utworzeniu obiektu konstruktor jest wywoływany automatycznie. Klasa konstruuje wszystkie wartości elementów członkowskich danych podczas inicjowania.
7. Czym jest C# w wyrzucaniu śmieci?
Proces czyszczenia pamięci, która została zajęta przez niepożądane elementy, jest znany jako zbieranie śmieci. Pewna ilość pamięci jest automatycznie przypisywana do obiektu klasy, gdy jest on tworzony w pamięci sterty. Teraz, po zakończeniu pracy nad elementem, miejsce w pamięci, które wcześniej zajmował, jest marnowane. Trzeba uwolnić pamięć.
8. Co dokładnie oznacza struktura w C#?
W języku C# struktura jest typem danych, który składa się z wielu typów danych, takich jak metody, pola, konstruktory, stałe, właściwości, indeksatory, operatory, a nawet inne struktury. Struktura pomaga w konsolidacji wielu rodzajów danych w jedną jednostkę. W ten sposób są one analogiczne do kursów. Struktury są typami wartości, natomiast klasy są typami referencyjnymi.
9. Jak kompiluje się kod C#?
Po utworzeniu projektu kod źródłowy C# jest kompilowany do języka pośredniego (IL). IL to zbiór instrukcji, który generuje kod maszynowy do wykonania na procesorze maszyny. Kod jest wysyłany z preprocesora do kompilatora, następnie do asemblera i ostatecznie do linkera w czterech etapach.
10. Jasno opisz różne klasy C#.
- Statyczny: jest to rodzaj klasy, której nie można utworzyć, dlatego nie możemy użyć słowa kluczowego new, aby utworzyć z niego obiekt, ale możemy bezpośrednio wywołać członków klasy, używając ich nazwy klasy.
- Abstract: Aby zdefiniować klasy abstrakcyjne, użyj słowa kluczowego abstract. Nie można tworzyć obiektów dla klas abstrakcyjnych. Musi być odziedziczony w podklasie, jeśli chcesz go użyć. W klasie Abstract dozwolone są proste definicje metod abstrakcyjnych i nieabstrakcyjnych.
- Częściowe: ta klasa umożliwia oddzielenie właściwości, metod i zdarzeń do kilku plików źródłowych, które są następnie łączone w jedną klasę w czasie kompilacji.
- Sealed: Klasa zapieczętowana nie może być dziedziczona z innej klasy i ma ograniczone cechy. Modyfikatory dostępu nie mogą być dodawane do klasy zapieczętowanej.
11. Czym dokładnie są tablice Jagged Array?
Tablica z elementami tablicy jest określana jako tablica postrzępiona. Elementy Jagged Array mogą mieć różne kształty i rozmiary.
12. Jaka jest różnica między parametrami out i ref?
Podając argument jako ref, parametr musi zostać zainicjowany przed przekazaniem do metody. Z drugiej strony parametr out nie musi być inicjowany przed dostarczeniem do metody.
13. Co to jest destruktor w C#?
Destruktor to typ metody w języku C#, który jest częścią klasy. Podstawową funkcją destruktora jest usuwanie instancji klasy, gdy nie są już potrzebne, w celu zwolnienia pamięci. Destruktory są czasami nazywane finalizatorami.
14. Co to jest indeksator w C#?
Indeksatory są używane w C# do znajdowania wystąpień klasy lub struktury. W związku z tym można uzyskać dostęp do indeksowanych wartości podobnie do tablicy, ale bez konieczności jawnego deklarowania elementu członkowskiego typu lub wystąpienia.
15. Jaka jest różnica między kodem zarządzanym a niezarządzanym?
Kod zarządzany umożliwia uruchamianie kodu w ramach platformy .NET w zarządzanym środowisku uruchomieniowym CLR.
Kontrolowany kod jest wykonywany w zarządzanym środowisku wykonawczym, a nie w systemie operacyjnym. Zapewnia różnorodne usługi, takie jak kolektor śmieci, obsługa wyjątków i tak dalej.
Kod niezarządzany to kod, który nie jest wykonywany w środowisku CLR i działa poza platformą .NET. Nie świadczą usług językowych na wysokim poziomie i dlatego działają bez nich. Jednym z takich przykładów jest C++.
16. Opisz serializację.
Aby przesłać go przez sieć, z elementu należy utworzyć strumień bajtów. Serializacja to czynność przekształcania elementu w strumień bajtów. Interfejs serializacji musi być zaimplementowany, aby element mógł być serializowany. Przeciwieństwem konstruowania obiektu ze strumienia bajtów jest deserializacja.
17. Jak w C# różnią się od siebie pola i właściwości?
Pole to element klasy lub obiekt dowolnego rodzaju, który służy jako miejsce przechowywania danych, podczas gdy właściwość to element klasy, który oferuje metodę odczytu, zapisu i obliczania wartości pola prywatnego.
18. Jak szczegółowo opisać użycie instrukcji w C#?
Instrukcja using służy do ograniczenia użycia jednego lub więcej zasobów w aplikacji. Zasoby są stale zużywane i uwalniane.
Podstawowym zadaniem tej instrukcji jest zarządzanie niechcianymi zasobami i automatyczne ich zwalnianie. Po utworzeniu obiektu, który wykorzystuje zasób, upewnij się, że funkcja usuwania obiektu jest wywoływana w celu zwolnienia zasobów wymaganych przez ten obiekt; tutaj przydaje się używanie instrukcji.
19. Jak zaimplementowałbyś wiele interfejsów o tej samej nazwie metody w tej samej klasie?
Aby zaimplementować kilka interfejsów o tej samej nazwie metody, unikaj implementowania ich w treści funkcji. Zamiast tego należy podać nazwę interfejsu bezpośrednio w treści metody. Kompilator rozpozna, do których metod interfejsu się odwołuje, rozwiązując problem.
20. Jaka jest różnica między zadaniem a wątkiem w języku C#?
Wątek to prawdziwy wątek systemu operacyjnego z własnym stosem i zasobami jądra. Wątek zapewnia największą kontrolę. Wątek umożliwia przerwanie (), zawieszenie () lub wznowienie (). Można obserwować stan wątku lub można ustawić jego atrybuty, takie jak rozmiar stosu, stan apartamentu i kultura. Środowisko CLR przechowuje pulę wątków opakowanych przez ThreadPool.
Biblioteka zadań równoległych ma klasę o nazwie Zadanie. W przeciwieństwie do ThreadPool, zadanie nie ma własnego wątku systemu operacyjnego. Zadania są wykonywane przez TaskScheduler, chociaż domyślny harmonogram jest wykonywany przez ThreadPool. Istnieje możliwość otrzymania powiadomienia o zakończeniu zadania i uzyskania wyniku.
21. Jaka jest funkcja finalize w C#?
Klasa obiektu, która jest używana do działań czyszczących, definiuje funkcję finalize(). Gdy odwołanie do obiektu nie jest używane przez dłuższy czas, garbage collector często wywołuje tę funkcję.
Moduł odśmiecania pamięci automatycznie zwalnia kontrolowane zasoby, ale jeśli chcesz zwolnić niepotrzebne zasoby, takie jak uchwyty plików, połączenia danych itd., musisz jawnie zaimplementować funkcję finalize.
22. Rozróżnij bloki finalizuj i finalizuj.
Zakończony blok jest wywoływany po zakończeniu bloków try-and-catch, ponieważ jest potrzebny do obsługi wyjątków. Blok kodu jest wykonywany niezależnie od tego, czy wyjątek został przechwycony. Kod bloku jest ogólnie czystszy.
Metoda finalize jest wywoływana tuż przed wyrzucaniem elementów bezużytecznych. Główne obowiązki sfinalizowanej metody to wyczyszczenie kodu niezarządzanego, który jest automatycznie wyzwalany za każdym razem, gdy wystąpienie nie jest ponownie przywoływane.
23. Opisz szczegółowo metodę usuwania w języku C#.
Funkcja disposeof() zwalnia nieużywane zasoby obiektu. Nieużywane zasoby, takie jak pliki, połączenia danych i tak dalej. Ta funkcja jest określona w interfejsie IDisposable, który jest implementowany przez klasę przez zadeklarowanie treści interfejsu IDisposable.
Funkcja usuwania nie jest wywoływana automatycznie; programista musi zaimplementować go ręcznie, aby efektywnie wykorzystać zasoby.
24. Co to jest przeciążanie metody C#? Wyjaśniać.
Przeciążanie metod jest typowym podejściem w języku C#, które służy do konstruowania wielu metod o tej samej nazwie i określonych podpisach. Ta procedura jest powtarzana z tą samą klasą.
Po zakończeniu procedury przeciążania metody kompilator rozpoczyna operacje w celu wywołania określonych akcji na podstawie przeciążenia metody.
25. Jaka jest różnica między tylko do odczytu a stałymi?
Zmienne stałe są deklarowane i inicjowane podczas kompilacji. Po tym czasie ta wartość nie może być zmieniona. Z drugiej strony, tylko do odczytu jest używany po przydzieleniu wartości w czasie wykonywania.
26. Czym są Kontrola Użytkownika i Kontrola Niestandardowa?
Skompilowany kod służy do tworzenia niestandardowych kontrolek. Mogą one znajdować się w zestawie narzędzi i są łatwe w użyciu. Przeciągając i upuszczając te kontrolki, programiści mogą uwzględniać je w swoich formularzach internetowych.
Kontrolki użytkownika i pliki dołączone do ASP są dość podobne. Są również proste w wykonaniu. Z drugiej strony nie można dodać kontrolek użytkownika do przybornika. Nie można ich również wyciągnąć i zrzucić.
27. Co to jest delegat multiemisji w języku C#?
Delegat multiemisji przechowuje odniesienia lub adresy do kilku funkcji jednocześnie. Gdy wywołamy delegata multiemisji, wywoła on również wszystkie inne funkcje, do których się odnosi. Aby wywołać kilka metod, użyj całego podpisu metody, podobnie jak delegat. Jako przykład:
28. Czym dokładnie jest łączenie obiektów w C#?
Pula obiektów to technika projektowania w oprogramowaniu, która przetwarza rzeczy, a nie je odbudowuje. Osiąga to poprzez przechowywanie wybranych elementów w puli i udostępnianie ich do użycia, gdy aplikacja ich zażąda. Ta procedura poprawia wydajność, zmniejszając niepotrzebne generowanie obiektów.
29. Czym dokładnie są generyki w C#.NET?
Ogólne są używane do tworzenia klas kodu wielokrotnego użytku w celu zmniejszenia nadmiarowości kodu, poprawy bezpieczeństwa typów i zwiększenia szybkości. Możemy konstruować klasy kolekcji z rodzajami.
W systemie zamiast klas takich jak ArrayList powinna być używana ogólna przestrzeń nazw. Przestrzeń nazw dla kolekcji. Do używania typów sparametryzowanych zachęcają typy generyczne.
30. Czy można zastąpić prywatną metodę wirtualną?
Prywatnej metody wirtualnej nie można zastąpić, ponieważ jest ona prywatna dla klasy i nie można uzyskać do niej dostępu spoza niej.
31. Rozróżnić przeciążanie metod i nadpisywanie metod w C#?
Zastępowanie metody to proces zmiany podstawowej definicji klasy pochodnej. Metody klasy pochodnej ostatecznie zachowują się inaczej w wyniku tej strategii.
Z drugiej strony przeciążanie metod można opisać jako czynność generowania wielu metod o tej samej nazwie, ale odrębnych sygnaturach w ramach tej samej klasy.
32. Jaka jest różnica między String i StringBuilder w C#?
Obiekt tekstowy jest niezmienny, co oznacza, że nie można go zmienić po utworzeniu. Każda próba zmiany obiektu napisowego spowoduje utworzenie nowego obiektu napisowego.
Z drugiej strony obiekt konstruktora ciągów jest plastyczny i może być modyfikowany według uznania dewelopera.
33. Czym właściwie są delegaci?
W C++ delegaci są zasadniczo tacy sami jak wskaźniki do funkcji. Jedyną różnicą między nimi jest to, że delegaci są bezpieczni pod względem typów, podczas gdy wskaźniki do funkcji nie. Delegaty są niezbędne, ponieważ umożliwiają konstruowanie ogólnych funkcji bezpiecznych dla typów.
34. Kiedy należy używać wielowątkowości w C#, a kiedy należy jej unikać?
Wielowątkowość, często nazywana wielowątkowością, to skuteczne podejście do zwiększenia szybkości programu, w którym wiele czynności jest wykonywanych jednocześnie. Umożliwia niezależne wykonywanie różnych wątków, zamiast czekać na zakończenie poprzedniego kroku. Ma to możliwość zwiększenia tempa programu.
Jednak gdy kilka procesów programu jest ze sobą połączonych, wielowątkowość nie jest zalecana. Na przykład, jeśli Krok B był zależny od ukończenia Kroku A jako pierwszy, wielowątkowość spowodowałaby problemy z wydajnością i wady oprogramowania. Wątek staje się coraz bardziej wrażliwy, gdy program rozwija się w złożoności.
35. Co to jest delegat multiemisji w języku C#?
Delegat multiemisji w języku C#, w przeciwieństwie do delegata podstawowego, odwołuje się do wielu metod docelowych. Gdy używany jest delegat multiemisji, wywoływane są wszystkie funkcje wskazywane przez delegata. Są one realizowane za pomocą klasy MulticastDelegate systemu.
36. Jaka jest w C# różnica między późnym wiązaniem a wczesnym wiązaniem?
- Wczesne wiązanie ma miejsce w czasie kompilacji, natomiast późne wiązanie ma miejsce w czasie wykonywania.
- Późne wiązanie jest często wolniejsze niż wczesne wiązanie, ponieważ występuje w czasie wykonywania.
- W przeciwieństwie do późnego wiązania, które wykorzystuje obiekt do rozwiązywania wywołań metod, wczesne wiązanie rozwiązuje wywołania metod przy użyciu informacji o klasie.
37. Rozróżnić Directcast i Ctype?
Rodzaj obiektu, który wymaga, aby typ czasu wykonywania był zgodny z określonym typem w DirectCast, jest konwertowany za pomocą DirectCast.
Gdy konwersja jest określona między wyrażeniem a typem, używany jest Ctype.
38. Jak wykorzystywany jest HashSet w C#?
W języku C# HashSet jest nieuporządkowaną kolekcją odrębnych wartości. Ogólnie rzecz biorąc, służy do zapobiegania wstawianiu zduplikowanych elementów do kolekcji i w tym zadaniu działa lepiej niż lista.
Do jego implementacji służy klasa HashSet, która wywodzi się z Systemu.
39. Proszę wyjaśnić łączenie wątków w C#.
W języku C# pula wątków to zbiór wątków. Te wątki są wykorzystywane do wykonywania zadań bez zakłócania funkcjonalności wątku głównego. Wątek z puli wątków powraca do puli wątków po zakończeniu działania.
Klasa System zawiera klasy, które obsługują wątek w puli wątków i jego akcje. Gwintowanie. ThreadPool to przestrzeń nazw.
40. Jaka jest różnica między słowami kluczowymi Const i ReadOnly w C#?
- ReadOnly nie można zadeklarować w ramach metody, podczas gdy Const może.
- Const jest stałą czasu kompilacji, podczas gdy ReadOnly jest stałą czasu wykonywania.
- Wartości tylko do odczytu można zmieniać, ale wartości Const nie.
41. Jakie szczegóły dotyczące pliku C# XSD możesz podać?
XSD oznacza definicję schematu XML. Jeśli żaden plik XSD nie jest połączony z plikiem XML, może mieć dowolne atrybuty, elementy i znaczniki. Plik XSD zapewnia strukturę pliku XML, określającą, jakie komponenty i atrybuty powinny być obecne w pliku XML oraz ich kolejność.
42. Co oznaczają dla Ciebie właściwości Get i Set Accessor?
W języku C# Get i Set są nazywane akcesorami, ponieważ są tworzone przy użyciu właściwości. Właściwość umożliwia odczytywanie i zapisywanie wartości pola prywatnego. Dostęp do takich pól prywatnych uzyskuje się za pośrednictwem akcesorów.
Podczas gdy właściwość Get jest używana do zwracania wartości właściwości, właściwość Set służy do ustawiania wartości.
43. Czym dokładnie jest wstrzykiwanie zależności w C#?
Wstrzykiwanie zależności (DI) to technika projektowania w języku C#, która służy do tworzenia luźno połączonego programowania. Ta procedura przenosi tworzenie i wiązanie obiektów zależnych poza klasę, na której się opierają. Głównym celem jest ułatwienie zarządzania przyszłymi modyfikacjami kodu.
Wnioski
C# to podstawowy język programowania używany we wszystkich językach programowania wyższego poziomu. Deweloperzy C# są bardzo poszukiwani i mogą znaleźć atrakcyjne perspektywy kariery w branżach takich jak programowanie front-end, programowanie back-end i tworzenie aplikacji. A ponieważ Microsoft to wspiera, popularność C# będzie tylko rosła.
Powyższe są najważniejszymi pytaniami do rozmowy kwalifikacyjnej C# dla doświadczonych profesjonalistów i początkujących. Widzieć Seria wywiadów z haszdorkiem o pomoc w przygotowaniu rozmowy kwalifikacyjnej.
Dodaj komentarz