- Details
- Geschrieben von: Gerrit
- Kategorie: Allgemeines
- Zugriffe: 4446
Die Verwendung eines Delegaten eignet sich um Funktionen / Methoden zu kapseln.
Sie ähneln einem Funktionszeigen im klassischem C und C++, in C# sind diese
objektorientiert und typsicher.
Als Beispiel für die Verwendung eines Delegate habe ich 2 kleine Funktionen, die ich mit dem Delegate benutzen möchte.
Die Delegateklasse
namespace Delegates
{
class LibDelegates
{
public delegate string SimpleDelegate(string s, string x);
public delegate int SimpleMath(int in1, int in2);
public string String2String1(string str1, string str2)
{
return (str2 + " " + str1);
}
public string String1String2(string str1, string str2)
{
return (str1 + " " + str2);
}
public int Multiplitzieren(int zahl1, int zahl2)
{
return zahl1*zahl2;
}
public int Addieren(int zahl1, int zahl2)
{
return zahl1 + zahl2;
}
}
}
Der Programmaufruf
using System;
namespace Delegates
{
class Program
{
static void Main(string[] args)
{
var myDel = new LibDelegates();
var myDelegate1 = new LibDelegates.SimpleDelegate(myDel.String1String2);
var myDelegate2 = new LibDelegates.SimpleDelegate(myDel.String2String1);
Console.WriteLine("Delegate mit String");
Console.WriteLine("Vor/Nach: {0}", myDelegate1("Vor", "nach"));
Console.WriteLine("Vor/Nach: {0}", myDelegate2("Vor", "nach"));
var myDelegate3 = new LibDelegates.SimpleMath(myDel.Multiplitzieren);
var myDelegate4 = new LibDelegates.SimpleMath(myDel.Addieren);
Console.WriteLine("Delegate mit Int");
Console.WriteLine("Multiplikation: {0}", myDelegate3(5, 5));
Console.WriteLine("Addition: {0}",myDelegate4(5, 5));
Console.ReadLine();
}
}
}
- Details
- Geschrieben von: Gerrit
- Kategorie: Allgemeines
- Zugriffe: 4974
Ein Verwander des Dictonarys
Ein Hashtable ist ein Objekt, welches einen Schlüssel sowie ein Wert als Paar ablegt.
using System;
using System.Collections;
namespace DemoHashTable
{
class HashTable
{
static void Main(string[] args)
{
//Neue instance eines Hashtables
Hashtable hashtable = new Hashtable();
// Key und Werte hinzufügen
hashtable.Add("000", "Max Mustermann");
hashtable.Add("001", "Gerrit");
hashtable.Add("002", "Hugo Schwarz");
hashtable.Add("003", "Willy Blau");
const string needle = "Gerrit";
if (hashtable.ContainsValue(needle)){
Console.WriteLine("Der Name {0} ist bereit in der Tabelle", needle);
}
else{
hashtable.Add("004", "Grünthal"); // value add
}
// Werte des Hashs in eine Collection geben
ICollection key = hashtable.Keys;
// Werte aus der Tabelle Anzeigen
foreach (string n in key){
Console.WriteLine("Key {0}\t Name\t:{1}",n, hashtable[n]);
}
Console.ReadKey();
}
}
}
Und so siehts aus: