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
Aby kompilator zaimplementował metodą dispose za nas, co odpowiada składni try{} finally{ resource.dispose();} (w uproszczeniu)
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
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
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 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, 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
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
Jest to program który sprawdza czy kod jest napisany zgodni ze standardami. Szuka śmieci w kodzie i informuje odpowiednim komunikatem
StringBuilder to klasa po której dziedziczy klasa Object, dlatego można utworzyć instancję klasy Object.