Gibt es einen Unterschied zwischen C# und C?
4 Antworten
Die Sprachen haben "ähnliche Syntax" wobei ähnlich hier natürlich auch schon sehr weit gefasst ist.
Die Syntax von C# basiert auf jener von Java (basierend auf C++) und C++ und die Syntax von C++ basiert wiederum auf C, aber im wesentlichen enden hier schon die Gemeinsamkeiten.
C# ist in seiner Ausführung dabei viel näher zu Java, da C# im Gegensatz zu C und C++ so genannte JIT Kompilierung verwendet und daher auch einige Vorteile der Skriptprogrammierung besitzt, die in C oder C++ so nicht gegeben sind. In so fern ist C# zwar langsamer als C++ und benötigt eine Ausführungsumgebung (vergleichbar mit der Java VM), allerdings ist es dadurch auch Speichersicher, da die Speicher selbst durch die Ausführungsumgebung geschützt werden und es ist Plattformunabhängig, da der Code erst zur Ausführung in tatsächliche Maschinenbefehle umgesetzt wird, daher läuft ein und das selbe C# Programm auf Arm und x64, was bei C++ und C so nicht der Fall ist.
C# ist eine (umfangreiche) Erweiterung von C. Sie haben Gemeinsamkeiten, aber auch große Unterschiede.
C selbst ist schon "Turingvollständig", was bedeutet, dass man damit grundsätzlich alles programmieren kann. Gleichzeitig ist es eine (für moderne Verhältnisse) schlichte, aber dadurch auch effiziente Programmiersprache. Viele Kernkomponenten von Betriebssystemen sind in C geschrieben, auch die Controller elektronisch gesteuerter Geräte werden oft in C programmiert. Auch hier ist die Effizienz von C sehr vorteilhaft, es ist sehr hardwarenah und braucht daher vergleichsweise wenig Rechenleistung, also optimal für einfache Geräte.
C# bietet erweiterte Konzepte, vor allem die Objektorientierung. Diese kann dabei helfen, große und komplexe Programme zu strukturieren. Zwar kann C theoretisch alles, was C# kann, aber gerade bei umfangreichen Programmen kann es mit C schwieriger sein, den Überblick zu behalten. C# wird beispielsweise in der Spieleentwicklung oder für generelle Desktopanwendungen, vor allem im Windows-Bereich eingesetzt. C# wurde auch von Microsoft entwickelt.
Falls die Frage ist, was man lernen sollte, würde ich eben für generelle Programme und Spieleentwicklung C# empfehlen, für Spiele und andere rechenintensive Programme wird auch oft C++ eingesetzt. Ebenfalls eine Erweiterung von C und quasi "Konkurrenz" zu C#. C++ ist tendenziell minimal performanter, allerdings ist es auch etwas anspruchsvoller, damit zu programmieren. C zu lernen macht Sinn, wenn man beispielsweise Elektronik oder Roboter programmieren möchte.
C++ hat die selbe Geschwindigkeit wie normales C. C++ ist ein echtes Superset zu C und beide können ohne weiteres gemischt werden.
C# ist eine Konkurrenz zu Java und auch als solche entwickelt, nicht zu C++. Die Konkurrenz zu C++ ist eher Rust.
C++/CLI ist hier eine ganz eigene Sache und eher eine "nieschen Sprache" von Microsoft um Legacy Code leichter in die CLI einpflegen zu können.
C und C# haben vom Syntax Ähnlichkeiten.
Ansonsten sind es zwei unterschiedliche Programmiersprachen.
Beispiel: In C# gibt es Objektorientierung, die es in C nicht gibt.
C ist hardwarenaher als C#.
Ich sag mal so, C erlaubt auch die Objektorientierte Programmierung auch wenn es keine Klassen im eigentlichen Sinne gibt, aber bei C++ und C# ist das grundlegender Teil des Designs der Sprache.
Das sind grundlegend verschiedene Sprachen die auf verschiedenen Konzepten aufbauen.
Genau wie Java und JavaScript.