Was ist das hier?

  • Eine Plattform von Flensburger Studenten für Flensburger Studenten
  • Ein Wiki zum Sammeln von Wissen
  • Ein Forum zum Austausch
  • Eine Wissensdatenbank zum Informatikstudium:
    • Programmieren in C, C#, PHP, Javascript, HTML, CSS
    • Datenbanken und Abfragen mit SQL
    • 2D / 3D - Gestaltung
    • Mathe, Physik, Gerätetechnik, RoBs
    • Audio- / Videotechnik
    • ...und vieles mehr

Anmelden

Warum registrieren?

Weil besser als gut!

 

Programmiersprache C

Behandelt in Vorlesung 2

Das .NET Framework

.NET

Die Sprache C#:

  • basiert auf C++, Java, ...
  • objektorientiert
  • keine Mehrfachvererbung
  • keine Zeiger erforderlich
  • einfacher als C++

C-Syntax:

C
 
class Hallo
{
 public static void Main(string[] args)
 {
   System.Console.WriteLine("Moin FL");
      // System <- namespace
      // Console <- Klasse
      // WriteLine <- statische Methode
 }
} // kein Semikolon
 
// alternativ:
using System;  // using System.Console wäre falsch
class Hallo
{
  .... Main
  {
     Console.WriteLine...
  }
}
 


Struktur eines C# Programms:

  • Programm besteht aus einer oder aus mehreren Dateien
  • Eine Datei kann einen oder mehreren namespaces enthalten
  • Eine Klasse kann auf mehrere Dateien aufgeteilt werden
  • Keine Includes, kein Präprozessor

Ein namespace kann enthalten:

  • andere namespaces
  • Klassen, Strukturen
  • Interfaces
  • Aufzählungen
  • Delegaten

Typen

eingebaute Typen(intrinsic types)

C# Intrinsies werden 1:1 auf .NET Typen abgebildet.

Abbildungen C# -> .NET

  • C# | .NET
  • byte | Byte
  • char | Char
  • bool | Boolean
  • sbyte | Sbyte
  • short | Int16
  • ushort | UInt16
  • int | Int32
  • uint | UInt32
  • float | Single
  • double | Double
  • decimal | Decimal
  • long | Int64
  • ulong | UInt64

Werttypen (by-value)

  • intrinsies
  • Aufzählungen (enums)
  • Strukturen

Eigenschaften

  • Werte liegen auf dem Stack
  • unterstützen keine Vererbung
  • können mittels Boxing wie Objekttypen verwendet werden
    • a) boxing(immer implizit)
C#
 
int i = 42;
string str = i.ToString(); // i-boxed
 
    • b) unboxing(immer explizit)
C#
 
int i = 42;
object o = i; //boxing 
int j = (int) o; //unboxing
 

Referenztypen

  • alle Nicht-Werttypen, d.h. alle Klassen
  • Objekte werden immer auf dem Heap angelegt
C#
 
AKlasse aobj; // Referenz, noch kein Objekt
 
C#
 
aobj = new AKlasse(); // jetzt Objekt
 
C#
 
Aklasse bobj;
bobj = aobj; //flache Kopie
 

Konvertierungen (casts)

  • implizit nur, wenn keine Informationen verloren gehen
C#
 
short a = 42;
int b = a;
 
  • explitit
C#
 
int a = 42;
short b = (short)a;
 
  • in C# gehen Casts nur über die alte Schreibweise (s.o.)

Konstanten

konstant sind:

  • Literate: int i = 42;
  • symb. Konstanten: const int i = 42;
  • Elemente von Aufzählungen:
C#
 
enum Tier
{
 hase = 1;
 igel = 2;
 tiger = 42;
}
 
Tier t1;
t1 = Tier.hase; // "Tier. hase" = konstant
 

Zeichenketten

Klassse string oder String

  • string Objekte sind immutable(unveränderbar)
  • string Objekte bestehen aus UNICODE-Zeichen
C#
 
string str = "Moin Max"; //Ausnahme für string Objekte, kein new nötig (s. Heapobjekte)
 
str = str + " und Moritz"; //neuer String auf dem Heap, das alte string Objekt wird durch den Garbage Collector entfernt, es ist kein delete mehr nötig
 


Kategorie: Programmieren | 3. Semester
| Mehr

Zahlen & Daten

  • 1096 Seitenaufrufe
  • 523 Tage alt
  • 1 Versionen
  • Letzte Änderung: 13.12.2010 um 12:08 Uhr

Publish