Programmeren in C Sharp

Inleiding tot C# (C-Sharp)

bewerken

De bedoeling van deze cursus is om inzicht te verwerven in C# met voorkennis van objectgeoriënteerd programmeren (zoals Java). Omdat C# niet veel afwijkt van deze, kan men hierdoor snel overgaan naar meer geavanceerde topics.

Een bekende versie van C-Sharp is Visual C# 2008 van Microsoft, dat van het .NET raamwerk gebruikmaakt.[1] Componenten kunnen hierbij al tijdens het ontwerp visueel worden weergegeven.

Basis C# concepten

bewerken

Verschillende variabelen

bewerken
Type NET naam Beschrijving
sbyte System.SByte 8-bit getal
byte System.Byte 8-bit getal (positief)
short System.Int16 16-bit getal
ushort System.UInt16 16-bit getal (positief)
int System.Int32 32-bit getal
uint System.UInt32 32-bit getal (positief)
long System.Int64 64-bit getal
ulong System.UInt64 64-bit getal (positief)
char System.Char 16-bit Unicode-teken
float System.Single 32-bit kommagetal
double System.DOuble 64-bit kommagetal
bool System.Boolean waar/onwaar-waarde
decimal System.Decimal zeer groot getal
object System.Object basis voor alle typen
string System.String tekst/reeks tekens

De types

bewerken

Vergelijk met Java en C++

bewerken
  1. 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.
  2. Arrays worden ArrayLists
  3. 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++).
  4. long: Dit type is nu 64 bit t.o.v. 32 bit bij C++.
  5. 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.
  6. delegate: Dit zijn type-safe function pointers.
  7. base en override:
  8. preprocessor directive: worden nu gebruikt voor conditionele compilaties; want er worden geen header files gebruikt in C#. Zie ook using.
  9. operators: Hier bestaan extra operators t.o.v. C++, namelijk de is en typeof, soortgelijke bestaan in Java.
  10. Main: wordt nu op een Java-stijl gebruikt, zoals de algemene structuur van het programma.
  11. pointers: ref en out worden nu gebruikt om parameters by reference door te geven. Unsafe wordt gebruikt om expliciet pointers door te geven.
  12. strings: in tegenstelling tot C++ waar er wel duizend en een soorten bestaan gebruikt C# de overkoepelende String cfr. java.
  13. 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.
  14. using:wordt gebruikt om naar andere namespaces te refereren zonder dat men telkens de volledige naam moet opgeven, cfr. Java (waar namespaces = packages)
  15. Destructor: net zoals bij Java is er automatic garbage collection die er voor zorgt dat men zich niets moet aantrekken van het opruimen van geheugen, dit in tegenstelling tot bij C++.
  16. 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 nog eens in runtime gecompileerd hoeft te worden.
bewerken

Referenties

bewerken
  1. MicroSoft: Visual Studio 2008 Express Edition (vrij verkrijgbare variant), 20090513
Dit artikel is een eerste opzet. U wordt uitgenodigd op bewerken te klikken om uw kennis aan dit artikel toe te voegen.
Deze pagina is vrijgegeven onder de GNU Free Documentation License (GFDL) en nog niet onder CC-BY-SA. Klik hier voor meer informatie.
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.