Służy do tworzenia obiektu luźno typowanego, np można utworzyć obiekt i dodawać mu dowolne właściwości bez wcześniejszego definiowania ich typu
W klasie abstrakcyjnej mogą być użyte zwykłe metody, czyli takie które wykonują jakieś czynności (maja ciało), interfejsy nie mogą definiować takich metod.
W C# można dziedziczyć tylko po dwóch klasach abstrakcyjnych, a interfejsy nie mają tego ograniczenia
Poprawna także: W C# można dziedziczyć po wielu interfejsach, a tylko po jednej klasie abstrakcyjnej. Dalej
Jest to program który sprawdza czy kod jest napisany zgodni ze standardami. Szuka śmieci w kodzie i informuje odpowiednim komunikatem
Służy do obsługi błędów w programie, blok catch odpowiada za przechwytywanie i obsługę wyjątków które wystąpiły podczas wykonywania kodu z bloku try, kod z bloku finally wykona się nawet jeśli wystąpi błąd w programie
Służy do określenie kolejności wykonywania kodu, kod wykonuje się kolejno w blokach try, finally, catch
Służy do obsługi błędów w programie, w bloku catch pojawia się kod który został automatycznie wyłapany jako błędny z bloku try, w bloku finally zawsze wykonywana jest metoda Close(); która kończy działanie programu
Służy do obsługi błędów w programie, blok catch odpowiada za przechwytywanie wyjątków które wystąpiły podczas wykonywania kodu z bloku finally, blok try próbuje obsłużyć wyjątek
Używając właściwości możemy ograniczyć dostęp z zewnątrz klasy ustawiając odpowiednie modyfikatory dostępu dla get oraz set, pole nie ma takiej możliwości
StringBuilder to klasa po której dziedziczy klasa Object, dlatego można utworzyć instancję klasy Object.
Aby kompilator zaimplementował metodą dispose za nas, co odpowiada składni try{} finally{ resource.dispose();} (w uproszczeniu)