Udostępnij za pośrednictwem


Harmonogram działania dla deweloperów języka Java uczących się języka C#

Języki C# i Java mają wiele podobieństw. Po zapoznaniu się z językiem C#możesz zastosować większość wiedzy, jaką masz już z programowania w języku Java:

  1. Podobna składnia: Języki Java i C# znajdują się w rodzinie języków C. To podobieństwo oznacza, że można już przeczytać i zrozumieć język C#. Istnieją pewne różnice, ale większość składni jest taka sama jak Java i C. Znane są nawiasy klamrowe i średniki. Instrukcje sterujące, takie jak if, elseswitch , są takie same. Instrukcje forpętli , whilei do...while są takie same. Te same słowa kluczowe i class interface znajdują się w obu językach. Modyfikatory dostępu z public do private są takie same. Nawet wiele typów wbudowanych używa tych samych słów kluczowych: int, i stringdouble.
  2. Paradygmat zorientowany obiektowo: Języki Java i C# są językami obiektowymi. Koncepcje polimorfizmu, abstrakcji i hermetyzacji mają zastosowanie w obu językach. Oba dodano nowe konstrukcje, ale podstawowe funkcje są nadal istotne.
  3. Silnie typizowane: Języki Java i C# są silnie typizowane. Typ danych zmiennych można zadeklarować jawnie lub niejawnie. Kompilator wymusza bezpieczeństwo typu. Kompilator przechwytuje błędy związane z typem w kodzie przed uruchomieniem kodu.
  4. Międzyplatformowe: Język Java i C# są międzyplatformowe. Narzędzia programistyczne można uruchamiać na ulubionej platformie. Aplikacja może działać na wielu platformach. Platforma deweloperów nie jest wymagana do dopasowania platformy docelowej.
  5. Obsługa wyjątków: Zarówno java, jak i C# zgłaszają wyjątki wskazujące błędy. Oba bloki służą try - - catchfinally do obsługi wyjątków. Klasy wyjątków mają podobne nazwy i hierarchie dziedziczenia. Jedną z różnic jest to, że język C# nie ma pojęcia sprawdzonych wyjątków. Każda metoda może (teoretycznie) zgłaszać wyjątek.
  6. Biblioteki standardowe: środowisko uruchomieniowe platformy .NET i biblioteka Java Standard Library (JSL) obsługują typowe zadania. Oba mają rozbudowane ekosystemy dla innych pakietów open source. W języku C# menedżer pakietów to NuGet. Jest to analogiczne do Maven.
  7. Odzyskiwanie pamięci: oba języki wykorzystują automatyczne zarządzanie pamięcią za pośrednictwem odzyskiwania pamięci. Środowisko uruchomieniowe odzyskuje pamięć z obiektów, do których nie odwołuje się odwołanie. Jedną z różnic jest to, że język C# umożliwia tworzenie typów wartości jako struct typów.

Będziesz produktywny w języku C# niemal natychmiast ze względu na podobieństwa. W miarę postępu należy nauczyć się funkcji i idiomów w języku C#, które nie są dostępne w języku Java:

  1. Dopasowywanie wzorca: Dopasowywanie wzorca umożliwia zwięzłe instrukcje warunkowe i wyrażenia na podstawie kształtu złożonych struktur danych. Instrukcja is sprawdza, czy zmienna "is" ma jakiś wzorzec. Wyrażenie oparte na switch wzorcu zapewnia bogatą składnię do sprawdzania zmiennej i podejmowania decyzji na podstawie jej cech.
  2. Interpolacja ciągów i nieprzetworzone literały ciągów: interpolacja ciągów umożliwia wstawianie obliczonych wyrażeń w ciągu zamiast używania identyfikatorów pozycyjnych. Nieprzetworzone literały ciągu umożliwiają zminimalizowanie sekwencji ucieczki w tekście.
  3. Typy dopuszczające wartości null i inne niż null: język C# obsługuje typy wartości dopuszczających wartość null i typy referencyjne dopuszczające wartość null przez dołączenie sufiksu ? do typu. W przypadku typów dopuszczających wartość null kompilator wyświetli ostrzeżenie, jeśli nie sprawdzisz null przed wyłuszczeniem wyrażenia. W przypadku typów innych niż null kompilator ostrzega, czy możesz przypisać null wartość do tej zmiennej. Typy referencyjne bez wartości null minimalizują błędy programowania, które zgłaszają błąd System.NullReferenceException.
  4. Metody rozszerzeń: w języku C#można tworzyć metody rozszerzające klasę lub interfejs. Metody rozszerzeń rozszerzają zachowanie typu z biblioteki lub wszystkich typów implementujących dany interfejs.
  5. LINQ: Zapytanie zintegrowane z językiem (LINQ) udostępnia wspólną składnię do wykonywania zapytań i przekształcania danych, niezależnie od jego magazynu.
  6. Funkcje lokalne: W języku C#można zagnieżdżać funkcje wewnątrz metod lub innych funkcji lokalnych. Funkcje lokalne zapewniają kolejną warstwę hermetyzacji.

W języku C# istnieją inne funkcje, które nie znajdują się w języku Java. Zobaczysz funkcje takie jak async i awaiti i instrukcje using , aby automatycznie zwalniać zasoby inne niż zasoby.

Istnieją również pewne podobne funkcje między językami C# i Java, które mają subtelne, ale ważne różnice:

  1. Właściwości i indeksatory: Zarówno właściwości, jak i indeksatory (traktując klasę jak tablica lub słownik) mają obsługę języka. W języku Java są to konwencje nazewnictwa metod rozpoczynających się od get i set.
  2. Rekordy: w języku C#rekordy mogą być typami class (odwołanie) lub struct (wartość). Rekordy języka C# mogą być niezmienne, ale nie muszą być niezmienne.
  3. Krotki mają inną składnię w językach C# i Java.
  4. Atrybuty są podobne do adnotacji języka Java.

Na koniec istnieją funkcje języka Java, które nie są dostępne w języku C#:

  1. Sprawdzone wyjątki: w języku C#dowolna metoda może teoretycznie zgłosić wyjątek.
  2. Wariancja zaznaczonej tablicy: w języku C#tablice nie są bezpiecznie kowariantne. Jeśli potrzebujesz kowariantnych struktur kolekcji, należy użyć ogólnych klas kolekcji i interfejsów.

Ogólnie rzecz biorąc, uczenie języka C# dla dewelopera doświadczonych w języku Java powinno być płynne. Znajdziesz wystarczająco dużo znanych idiomów, aby szybko być produktywne i nauczysz się nowych idiomów szybko.