Programmeren in C Sharp
Uit Wikibooks
Inhoud |
[bewerk] Inleiding tot C# (C-Sharp)
De bedoeling van deze cursus is om inzicht te verwerven in CSharp met voorkennis van OO (zoals Java). Omdat C# niet veel afwijkt van deze kan men hierdoor snel overgaan naar meer geavanceerde topics.
[bewerk] Een voorbeeldprogramma
[bewerk] De types
[bewerk] 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 t.o.v. C++ waar men multiple inheritance kent en tevens geen interfaces.
- Arrays worden ArrayLists
- bool: er is geen conversie tussen bool en int zoals bij C++. Conversies moeten over het algemeen 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 conversies verzorgen (is veiliger dan het typecasten bij C/C++).
- long: Dit type is nu 64 bit t.o.v. 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 parameters public zijn). Het verschil met Java is eenvoudiger: Java kent namelijk 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 t.o.v. C++, namelijk 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 arrays en collecties te itereren. Dit laat toe om deze makkelijker te doorlopen dan in C++ of Java waar men for-lussen nodig had en het einde ervan moest weten/zoeken.
- 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 aantrekken 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.
- Een vergelijking tussen C# en C++ - Mocht deze niet te vinden zijn, dan komt dat omdat Microsoft zijn site regelmatig verandert.
[bewerk] Externe links
| Dit artikel is een beginnetje. U wordt uitgenodigd op bewerk te klikken om uw kennis aan dit artikel toe te voegen. |
| De wijzigingen aan deze pagina van voor 15 april 2007 vallen alléén onder de GFDL, en niet onder de CC-BY-SA-licentie. U kunt de inhoud van deze pagina dan ook alleen onder de voorwaarden van de GFDL (her)gebruiken. Niet alle bijdragers van voor 15 april 2007 hebben hun werk vrijgegeven onder de dubbellicentie GFDL&CC-BY-SA. Kijk hier voor meer informatie. |

