Delegate in C#

C# ist eine objektorientierte Programmiersprache, welche unsichere Elemente, wie etwa Zeiger (Pointer), grundsätzlich vermeidet. Dennoch sind Zeiger nicht nur in Augen von C/C++-Entwicklern in einigen Fällen einfach notwendig, so z.B. die Funktionszeiger.

Delegates sind Funktionszeiger in C#. Sie zeigen auf mindestens eine Funktion bzw. Methode. Benutzt wird ein Delegate in C# zum Beispiel für Events.

Ein Delegate wird in C# nach folgendem Schema definiert:

[Öffentlichkeitsparameter] delegate Rückgabewert Delegatename ([Methodenparametertyp Methodenparametername] );

Das Delegate weiß bereits im Vorfeld über die Parameter und dem Rückgabewert der Methode(n) bescheid, auf die es später verweisen soll.

Im nachfolgendem Beispiel ist ein Delegate in einer Klasse definiert, welches…
[csharp]

public delegate string FPointer (int index);

[/csharp]

→ WEITERLESEN

Kategorien C#

Foreach Schleife in C#

Die Foreach-Schleife ist eine mächtige Schleife für objektorientierte Programmiersprachen. Die Foreach-Schleife definiert eine Variable (im Beispiel item vom Typ string), welche als ein Stellvertreter eines jeden Elements eines Arrays oder einer Liste dient (Iterationsvariable).

Die Foreach-Schleife hat jedoch einen Nachteil gegenüber anderen Schleifen, denn das Array kann beim Zugriff über diese Schleife nicht in Größe und Inhalt verändert werden.

[csharp] ArrayList arrayList = new ArrayList();

arrayList.Add(„A“);
arrayList.Add(„B“);
arrayList.Add(„C“);
arrayList.Add(„D“);
arrayList.Add(„E“);

foreach (string item in arrayList)
{
Console.WriteLine(„Inhalt: “ + item);
}
[/csharp]

Ausgabe:

Inhalt: A
Inhalt: B
Inhalt: C
Inhalt: D
Inhalt: E

Kategorien C#

ArrayList in C#

Normale Arrays haben den Nachteil, dass die Indizierung statisch ist. In vielen Anwendungsfällen ist dies jedoch unpraktisch, da ein Array für keine Situation zu klein bemessen sein darf, ein zu großes Array belegt hingegen zu viel ungenutzten Speicherplatz im Arbeitsspeicher.

Eine ArrayList, welche eigentlich auch nur eine List<T> mit Index ist, schafft Abhilfe. Eine C# ArrayList ist ein dynamisches Array. Die Klasse ArrayList ist von einigen Klassen, u.A. der IList, abgeleitet. Für die Implementierung bedarf es der System.Collections.

→ WEITERLESEN

Kategorien C#

Arrays in C#

Arrays sind indizierter Mehrfach-Platzhalter gleichen Datentyps. Ein Array ,unter C-Programmierern oft auch Vektor genannt, hat einen deklarierten Namen wie eine Variable und dazu einen eckigen Klammerbereich []. Die Klammern dienen der Indizierung.

Arrays werden dann nützlich, wenn ein Wertetyp für einen definierten Zweck mehrfach benötigt wird. Stellen Sie sich vor, Sie müssten für jeden Tag den Fortschritt des Stromzählers speichern und nach 7 Tagen einen Durchschnitt aus den Tagesverbräuchen bilden.
Sicherlich ließen sich dafür 7 Variablen, z.B. zstand_montag, zstand_dienstag, zstand_mittwoch, zstand_donnerstag, zstand_freitag, zstand_samstag und zstand_sonntag, anlegen. Dies ist jedoch aufwändig, insbesondere, wenn Sie die verschiedene Berechnungen mit diesen Variablen durchführen müssen.

→ WEITERLESEN

Kategorien C#

Stabgerüst mit Kugelgelenken

Das nachfolgende Beispiel befasst sich mit einem sogenannten Zweischlag und seiner Statik. Es handelt sich um zwei Stangen, welche über ein Kugelgelenkt miteinander verbunden sind und, ebenfalls über Kugelgelenke, mit Festlagern befestigt sind. Dieses Beispiel berücksichtigt keine eventuelle Elastizität der Stangen. Das Gewicht der Stangen und Gelenke ist bekannt.

Stabgerüst

Der Aufbau des Zweistangengerüsts ist den Skizzen zu entnehmen.

Stabgerüst

→ WEITERLESEN

Schiefe Ebene, Kräfte-Beispiel

Als Beispiel dient hier ein Objekt, welches auf einer schiefen Ebene steht. Das Objekt wird von der Schwerkraft nach unten gezogen. Eine Widerstandskraft (zusätzlich zum Luft- und Reibungswiderstand, welche in diesem Beispiel nicht berücksichtigt werden) in Form einer Schnur (oder Ähnlichem) hält das Objekt in Ruhe. Die Widerstandskraft ist im Bild als blaue Linie zu sehen.

Wie groß muss diese Widerstandskraft sein?

schiefe ebene

→ WEITERLESEN

Rollbalken-Statik

Vorliegend ein Rollbalken, welcher in einem bestimmten Winkeln an eine Wand angelehnt ist. Der Balken hat an beiden Seiten je eine Rolle, es gibt daher wenig Widerstand an den Kontaktpunkten zwischen Balken, Wand und Boden (und in diesem Beispiel gehen wir dazu davon aus, dass es gar keinen inneren Widerstand in den Rollen gibt). Der Rollbalken befindet sich in Ruhezustand, er bewegt sich nicht und soll sich nicht bewegen.

Rollbalken Statik

→ WEITERLESEN

Hebelgesetz – Momente

Momente begegnen uns jeden Tag, nahezu überall. Beispielsweise ist der Sinn eines Automotors die Erzeugung eines Momentes, aus diesem Moment wird die Antriebskraft geschöpft.

Eine Kraft, die ihre gleichgroße, entgegen gesetzte Kraft hat, die auf der gleichen Wirkungslinie nur entgegengesetzt wirkt, ist eine Gegenkraft. Es herrscht ein Kräftegleichgewicht. Verschiebt sich diese Kraft parallel zur Wirkungslinie, handelt es sich nicht mehr um eine Gegenkraft, denn die Kräfte verursachen nun eine Drehbewegung.

Moment

→ WEITERLESEN

Statik und das Newtonsche Reaktionsgesetz

In der Statik hat jede Kraft ihre gleichgroße Gegenkraft, welche die selbe Wirkungslinie hat. Die Gegenkraft läuft jedoch in entgegengesetzter Richtung und sorgt daher für ein Kräftegleichgewicht.

Kraft ->Körper<- Gegenkraft

Wirkt eine Kraft und eine Gegenkraft auf einen Körper ein, herrscht ein Kräftegleichgewicht, der Körper wird daher nicht beschleunigt, er befindet sich in Ruhe.

Ein Beispiel:

Stellen wir uns auf dem Boden, zieht uns die Gravitationskraft zum Erdmittelpunkt. Diese Gravitationskraft (Kraft) wirken wir mit unserer Muskulatur (Gegenkraft) entgegen. Entspannen wir unsere Muskulatur, zum Beispiel durch eine Betäubung, fallen wir auf dem Boden. Dennoch haben wir zumindest den Boden, der uns abhält, zum Erdmittelpunkt gezogen zu werden, da der Boden (und unser eigener Körper) eine eigene Statik hat und genug Widerstand bietet, der Kraft entgegenzuwirken.

Dabei wird in der Statik erst einmal davon ausgegangen, dass jeder Körper ein starrer Körper ist. Tatsächlich ist aber selbst das härteste Material nicht absolut starr.

Beispiel:

Eine Kartoffel kann man mit dem Daumen der einen Hand anschieben, nimmt man den Daumen der anderen Hand hinzu und drückt die Kartoffel (auf der selben Wirkungslinie) in entgegengesetzter Richtung mit gleicher Kraft, wird die Kartoffel nicht verschoben. Steigen die Kräfte, die beide Daumen ausüben, synchron an, ändert sich nichts an der Position der Kartoffel, sie wird sich jedoch verformen.

Setzt die entgegenwirkende Kraft nicht auf der selben Wirkungslinie an, wird sich der Körper, wenn er nicht durch eine andere Kraft fixiert ist, um eine eigene Achse drehen – daraus folgt dann ein Moment.