Witam
Pisałem narazie w języku C++ i taki też mam w planach nauczania, ale ostatnio zaciekawił mnie język C#
I stąd moje pytanie czy jest jakaś duża różnica pomiędzy tymi językami
(chodzi mi głównie o składnię)
Z góry dziękuję za odpowiedź
Witam
Pisałem narazie w języku C++ i taki też mam w planach nauczania, ale ostatnio zaciekawił mnie język C#
I stąd moje pytanie czy jest jakaś duża różnica pomiędzy tymi językami
(chodzi mi głównie o składnię)
Z góry dziękuję za odpowiedź
Tak, to są zupełnie inne języki
A na serio - w C# zapomnij o #include, #define i innych poleceniach preprocesora, zapomnij o wskaźnikach i do pół obiektu odwołujesz się poprzez operator “.” (zawsze, -> w ogóle nie istnieje). Inaczej też robi się referencję (słowo kluczowe out), inne są typy danych i tak dalej.
Ale za to same konstrukcje (namespace, class, try, if, pętle to są chyba takie same).
Różnic w składni jest zbyt wiele, by je wymieniać. Kup jakąś książkę do C# (choćby i kieszonkowy podręcznik O’Reilly) i się przekonasz. C# ma pojedyncze dziedziczenie i interfejsy, klasy statyczne, obligatoryjne przestrzenie nazw, nie ma domyślnych wartości parametrów funkcji,… Są setki różnic.
:roll: Kolega miał z pewnością na myśli partial classes. Inna sprawa, że nie jest to sama w sobie żadna nowość w stosunku do C++.
Ani to, ani to. Za bardzo mi się wcisnął alt i chodziło o pola (“pól”) obiektu
W C++ do pól (i metod) obiektu przekazanego przez wskaźnik odwołujesz się za pomocą operatora “->”, a w C# nie ma takiego rozróżnienia i zawsze jest “.”. I o to chodziło. Bo nawet taka mała zmiana, a może namieszać (ja osobiście bardzo nie lubię operatora “->”, bo się długo pisze ;-))
Bo nie mam pojęcia czym mogły by być pół-obiekty (partial classes to chyba inaczej się tłumaczy)
Do pól i metod obiektu wskazanego przez wskaźnik można się swobodnie odwołać kropką
(*obiekt).Metoda();
Ale mniejsza o to. Osobiście uważam, że ta “leniwa” składnia jest bronią obosieczną. Jasne, kod wygląda bardziej czytelnie, garbage collector zajmuje się zwalnianiem pamięci, ale z drugiej strony zbyt łatwo stworzyć wiele kopii obiektów i sprawić, że GC zajmie się zwalnianiem pamięci.
Przykładowo ta leniwa składnia sprawia, że każdorazowe wywołanie funkcji z parametrem będącym obiektem, tworzy kopię tego obiektu (ale nie jego danych). To, że składnia ładnie wygląda czyni C# złudnie łatwiejszym.
Jeśli chodzi o różnice między C++ i C# to Pan Petzold (znany z kultowej książki o WinAPI) za darmo daje .NET Book Zero będący właśnie wstępem do C# dla programistów C/C++.