Programmeren in C Sharp: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Koos Jol (overleg | bijdragen)
kGeen bewerkingssamenvatting
Eli Verbuyst (overleg | bijdragen)
Regel 9:
 
==Vergelijk met Java en C++==
 
#'''Overerving''': een classe kan maar van 1 andere klasse overerven maar kan wel meerdere '''interfaces''' '''implementeren'''. Dit is net zoals bij Java, maar een verandering tov. C++ waar men '''multiple inheritance''' kent en tevens geen '''interfaces'''.
#'''Arrays''' worden
#'''bool''': er is geen conversie tussen bool en int zoals bij C++. Conversies over het algemeen moeten opgelost worden zoals bij java door '''Wrapper Classes''', dit zijn classes die op zich het type bool of int of .. bevatten maar tevens '''methods''' die de conversie's verzorgen (is veiliger als het '''typecasten''' bij C/C++).
#'''long''': Dit type is nu 64 bit tov 32 bit bij C++.
#'''Struct''': Dit is een '''value type''' terwijl een class een '''reference type''' is. Dit is een verschil met C++ waar een struct eigenlijk een '''public class''' voorstelt (een class waarvan alle paramters public zijn). Het verscil met java is eenvoudiger nl: java kent geen structs.
#'''delegate''': Dit zijn type-safe function pointers.
#'''base''' en '''override''':
#'''preprocessor directive''': worden nu gebruikt voor conditionele compilaties; want er worden geen '''header files''' gebruikt in C#. zie ook '''using'''.
#'''operators''': Hier bestaan extra operators tov C++ nl de '''is''' en '''typeof''', soortgelijke bestaan in java.
#'''Main''': word nu op een java stijl gebruikt. Zoals de algemene structuur van het programma.
#'''pointers''': '''ref''' en '''out''' worden nu gebruikt om parameters '''by reference''' door te geven. '''Unsafe''' wordt gebruikt om expliciet pointers door te geven.
#'''strings''': in tegenstelling tot C++ waar er wel duizend en een soorten bestaan gebruikt C# de overkoepelende '''String''' cfr. java.
#'''foreach, in''': laat toe om door '''array's''' en '''collectie's''' te itereren. Dit laat toe om dezen een pak makkelijker te doorlopen dan in C++ of java waar men '''for'''-lussen nodig had en het einde moest weten/zoeken van dezen.
#'''using''':wordt gebruikt om naar andere namespaces te refereren zonder dat men telkens de volledige naam moet opgeven cfr. java (waar '''namespaces''' = '''packages''')
#'''Destructor''': net zoals bij java is er '''automatic garbage collection''' die er voor zorgt dat men zich niks moet aan trekken van het opruimen van geheugen, dit in tegenstelling tot bij C++ (maar zou een van de redenen zijn waardoor C++ nog steeds een van de snelste en meest gebruikte programmeertalen is).
#'''Bit vs. Byte code''': C# en java worden beide naar byte-code gecompileerd in tegenstelling tot C++ die naar machinetaal wordt omgezet. Dit zorgt ervoor dat C++ niet op elk platform kan draaien maar wel dat het sneller werkt omdat het niet in '''runtime''' nog gecompileerd moet worden.
 
*[http://msdn.microsoft.com/library/en-us/cscon/html/vclrfcomparisonbetweenccsharp.aspx Een vergelijking tussen C# en C++] - Mocht deze niet te vinden zijn, dan komt dat omdat microsoft zijn site regelmatig veranderd.
 
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.