mad_max234 schreef op zondag 26 oktober 2014 @ 11:18:
[...]
Beetje overdreven hoor, ik zeg ook niet dat tweelingen zijn want C voor embedded heeft natuurlijk hele andere eisen dan C voor Windows met GUI ondersteuning.
C# is gewoon C, alle C lib zitten erin en werken zoals je van C zou verwachten, ontbreekt zover ik weet niks? Er is alleen wat toegevoegd, zoals alle Windows libs en GUI code, etc.
Volgens mij heb je het over het verschil in API's en niet in de taal. C# is lijkt misschien qua syntax op C (dat is niet vreemd want het is een evolutie van C), maar het is wel degelijk een andere taal.
Verschillen tussen C en C#:
* C is gecompileerd naar machinetaal terwijl C# gecompileerd wordt naar intermedia code, die door een YIT compiler naar machinecode wordt omgezet. Dit maakt een C# programma CPU-onafhankelijk.
* C# kent Classes, C niet.
* C# heeft automatic memory allocation, C niet.
* C# heeft true enums, C niet.
* C# heeft geen pointers, maar references
* C# heeft generics, C heeft alleen een precompiler.
* C# heeft delegates en lambda expressies.
* C is een structured language, C# is object oriented.,
* en zo kan ik nog wel even doorgaan..
Een betere vergelijking zou C++ met C# zijn.
Wat je bedoeld is dat C# een CLR (Common Language Runtime) heeft, die alle basisfuncties voor je regelt, zoals console-IO, base classes voor collections en sets, exception handling, etc. De Windows libraries waar jij over spreekt (voor onder andere WPF, Windows Services, Mail, Web Server) staan geheel los van de C# definitie. De CLR zou je kunnen vergelijken met de standaard libraries voor C (oa. stdio.h).