[X] Einführung in C# .Net
-
Hi zusammen ich würde mich anbieten nach dem Beitrag Einführung in .Net gleich mal eine .Net Sprache vorzustellen und zwar würde es um folgendes gehen:
C# .Net:
1.Übersicht
2.Typen
3.Ausdrücke (Expressions)
4.Deklarationen
5.Anweisungen(Statements)eventuell noch
6.Klassen und Strukturen
Ich will mal einen ganz kleinen eindruck geben wie es aussehen könnte:
1. Übersicht:
In diesem Artikel möchte ich eine kleine Einführung in C# .Net geben und kurz und bündig erklären worum es geht.
C# .Net ist eine Programmiersprache die sehr ähnlich ist wie Java
ca 70% sind wie in Java, 10% C++, 5% Visual Basic und nur 15% sind ganz neuÄhnlichkeiten zu Java:
•Objectorientierung (einfach Vererbung)
•Interfaces
•Exceptions
•Threads
•Namespaces (wie Packages)
•Garbage Collection
•Reflection
•dynamisches Code-loading
•...Ähnlichkeiten zu C++:
•überladen (von Operator)
•Pointer Arithmetic in unsicherem (unsafe) Code
•syntaktische Detailswirklich neu:
•Referenz und output Parameter
•Objekte auf dem Stack (structs)
•Rectangular Arrays
•Enumerationen
•Unified type system
•goto
•VersionierungSyntaktische Schönheiten:
•Delegates
•Indexers
•Operator overloading
•foreach Statements
•Boxing/unboxing
•Attribute
•...so könnte es weiter gehen wenn ihr interesse dran habt
-
Hab zwar mit C# nix am Hut, aber es wäre bestimmt ein interessanter Artikel, gerade im Hinblick auf die Einführung in .net von Talla.
Willst das wie ein Tutorial aufziehen oder welche Struktur hast du dir vorgestellt? Das sieht jetzt nämlich sehr umfangreich aus.
-
Ich finde das auch mal interessant, vor allem weil zig C# Bücher im Regal einstauben und ich immer noch nicht genau weiß, wasda so alles geht.
-
Wenn du Hilfe brauchst kann ich dir gerne bei technischen Fragen helfen
Aber willst du wirklich nur C# als Sprache betrachten? Weil man gerät sehr schnell in Versuchung eher über Eigenschaften des Frameworks noch zu erzählen als über die Sprache.
-
hm naja Tutorial sag ich mal jain also ich will es nicht all zu sehr aufblasen, weil es quasi ein näher bringen der Sprache sein soll, um genaueres zu erklären ist der Artikel tatsächlich sonst so zu umfangreich. Wenn ihr meint dass das nicht Wert ist einen Artikel zu schreiben dann sagt es mir, oder ihr sagt mir wie ich es sonst machen könnte. Vielleicht mal noch was zu Typen um einen kleinen Eindruck zu geben wie ich es mir vorstelle:
2. Typen (Types)
Alle Typen sind kompatibel zu "Object". Ebenso können alle Typen Variablen vom Typ Object zugewiesen werden und es sind alle Objekt-Operationen auf sie anwendbar.
Unterschied zwischen Festwert-Typen(value Types) und Referenz-Typen (reference-Types)
Festwert-Typen:
Festwert-Typen enthalten Werte die in ihnen gespeichert werden, sie werden auf dem Stack gespeichert. Bei einer Zuweisung wird der Wert kopiert. Die Initialisierung von Festwerttypen kann wie folgt aussehen:int i = 0; // oder bool b = false; // oder string s = '\0'
Referenz-Typen:
Im Gegenteil zu Festwert-Typen werden in Referenztypen, wie der Name schon sagt, Referenzen zu Objekten gespeichert, und bei Zuweisungen wird ebenfalls die Referenz kopiert; keine Werte. Referenzen werden auch nicht auf dem Stack sodern auf dem Heap gespeichert und werden immer mit null initialisiert.zu den primitiven Datentypen gehören hier
primitiver Typ Long Form in Java Range sbyte System.SByte byte -128 .. 127 byte System.Byte --- 0..255 short System.Int16 short -32768 .. 32767 ushort System.UInt16 --- 0 .. 65535 int System.Int32 int -2147483648 .. 2147483647 uint System.UInt32 --- 0 .. 4294967295 long System.Int64 long -2[h]63[/h].. 2[h]63[/h]-1 ulong System.UInt64 --- 0 .. 2[h]64[/h]-1 float System.Single float ±1.5E-45 .. ±3.4E38(32 Bit) double System.Double double ±5E-324 .. ±1.7E308(64 Bit) decimal System.Decimal --- ±1E-28 .. ±7.9E28 (128 Bit) bool System.Boolean boolean true,false char System.Char char Unicodecharacter
jetzt würde noch was zur Kompatibilität unter den Typen kommen und noch ne Kleinigkeit über Enums, und damit wären dann die Types abgeschlossen.
was meint ihr??
-
Polofreak, du darfst die Bilder auch gerne bei uns hochladen.
Alle Typen sind kompatibel zu "Object".
Also von Object abgeleitet?
Referenztypen [...] und werden immer mit null initialisiert
Sind die sowas wie Zeiger in C? Aber was sind dann Pointer?
zu den primitiven Datentypen gehören hier
Huch, Themenwechsel? Eben war es noch der Abschnitt Referenztypen - da fehlt wohl die Überschrift.
Insgesamt wäre es schön, da hier wohl mehr Leute C und C++ als Java können, wenn du zu beiden Sprachen vergleichen könntest.
Also noch eine Spalte in die Tabelle z.B.
-
Polofreak: So wie der Teil über Typen, das könnte ich mir sehr gut vorstellen. Ein Anreißen von C# ist sicherlich für viele hilfreich.
estartu_de schrieb:
Referenztypen [...] und werden immer mit null initialisiert
Sind die sowas wie Zeiger in C? Aber was sind dann Pointer?
Ich nehme an die C# Referenzen ähneln den von Java.
-
GPC schrieb:
Polofreak: So wie der Teil über Typen, das könnte ich mir sehr gut vorstellen. Ein Anreißen von C# ist sicherlich für viele hilfreich.
estartu_de schrieb:
Referenztypen [...] und werden immer mit null initialisiert
Sind die sowas wie Zeiger in C? Aber was sind dann Pointer?
Ich nehme an die C# Referenzen ähneln den von Java.
Haben die irgendwas mit z.B. int& in C++ zu tun? Da kann man ja blos kein NULL reinstecken, Referenz heißts ja.
Aber vielleicht wird das ja noch erklärt.Sonst war der Teil schon nett zu lesen.
-
Eher nicht.
In Java können Referenzen null sein:String s = "Hallo"; s = null;
In C++ eben nicht. Na ja, genaugenommen erwarten wir nur, dass sie etwas referenzieren, haben aber keine Möglichkeit nachzuschauen ob sie's wirklich tun...
-
Talla schrieb:
...Aber willst du wirklich nur C# als Sprache betrachten?...
joa siehe Postings wo ich Beispiel bringe.
estartu_de schrieb:
Polofreak, du darfst die Bilder auch gerne bei uns hochladen.
hm irgendwo hier im Forum stand des wo und wie ich das machen kann, und wie die Bildtags gehen. Oder?
estartu_de schrieb:
Alle Typen sind kompatibel zu "Object".
Also von Object abgeleitet?
Hm ich muss nochmal nachlesen ich glaub sie sind nicht von Object abgeleitet sind aber ohne expiciten Cast zuweisbar, beim zurückcasten muss man allerdings explizit casten.
estartu_de schrieb:
Referenztypen [...] und werden immer mit null initialisiert
Sind die sowas wie Zeiger in C? Aber was sind dann Pointer?
zu den primitiven Datentypen gehören hier
Huch, Themenwechsel? Eben war es noch der Abschnitt Referenztypen - da fehlt wohl die Überschrift.
joa rischtisch hier fehlt die Überschrift und mit den Refernztypen so wie GPC sagt sehr java ähnlich (wie so vieles )
estartu_de schrieb:
Insgesamt wäre es schön, da hier wohl mehr Leute C und C++ als Java können, wenn du zu beiden Sprachen vergleichen könntest.
Also noch eine Spalte in die Tabelle z.B.OK die Tabelle könnte man wohl mit C/C++ erweitern aber sonst ist es recht schwer weil es einfach ähnlicher zu java ist.
-
ich hab mir den Thread nochmal durchgelesen und wenn ich das richtig verstanden habe, dann fang ich mal an, ein wenig zu schreiben. Dann will ich nochmal kurz fragen, soll ich das hier weiter führen oder soll ich einen neuen Thread aufmachen? Tut mir leid wenn ich vielleicht noch den einen oder anderen Fehler mache, ist halt mein erster Artikel. *shy*
-
Polofreak schrieb:
estartu_de schrieb:
Polofreak, du darfst die Bilder auch gerne bei uns hochladen.
hm irgendwo hier im Forum stand des wo und wie ich das machen kann, und wie die Bildtags gehen. Oder?
Guck in die Anleitung, alleroberster Post: http://www.c-plusplus.net/forum/viewtopic-var-t-is-121848.html
Wenn du nur mit Java vergleichen willst ist das okay - du bist der Autor und es war nur ein Vorschlag von mir.
-
okay hab es gelesen weiß aber nicht ob ich hier weiter schreiben soll, oder ob ich nen neuen THread starten sollte, aber egal ich fang mal hier an und wenn ich einen neuen hätte anfangen sollen, dann mach ich das dann. Wenn ich dennoch Fehler machen sollte, dann bitte gleich sagen.
-
Einführung in C# .Net:
1.Übersicht
2.Typen
3.Ausdrücke (Expressions)
4.Deklarationen
5.Anweisungen(Statements)
6.Klassen und Strukturen1. Übersicht:
In diesem Artikel möchte ich eine kleine Einführung in C# .Net geben und kurz und bündig erklären was C# .Net ist, Besonderheiten und Ähnlichkeiten zu anderen Sprachen sind auch mit ein Thema.
C# .Net ist eine Programmiersprache die sehr ähnlich ist wie Java
ca 70% sind wie in Java, 10% C++, 5% Visual Basic und nur 15% sind ganz neuÄhnlichkeiten zu Java:
•Objectorientierung (einfach Vererbung)
•Interfaces
•Exceptions
•Threads
•Namespaces (wie Packages)
•Garbage Collection
•Reflection
•dynamisches Code-loading
•...Ähnlichkeiten zu C++:
•überladen (von Operator)
•Pointer Arithmetic in unsicherem (unsafe) Code
•syntaktische Detailswirklich neu:
•Referenz und output Parameter
•Objekte auf dem Stack (structs)
•Rectangular Arrays
•Enumerationen
•Unified type system
•goto
•VersionierungSyntaktische Schönheiten:
•Delegates
•Indexers
•Operator overloading
•foreach Statements
•Boxing/unboxing
•Attribute
•...2. Typen (Types)
Alle Typen sind kompatibel zu "Object". Ebenso können alle Typen Variablen vom Typ Object zugewiesen werden und es sind alle Objekt-Operationen auf sie anwendbar.
Unterschied zwischen Festwert-Typen(value Types) und Referenz-Typen (reference-Types)
Festwert-Typen:
Festwert-Typen enthalten Werte die in ihnen gespeichert werden, sie werden auf dem Stack gespeichert. Bei einer Zuweisung wird der Wert kopiert. Die Initialisierung von Festwerttypen kann wie folgt aussehen:int i = 0; // oder bool b = false; // oder string s = '\0'
Referenz-Typen:
Im Gegenteil zu Festwert-Typen werden in Referenztypen, wie der Name schon sagt, Referenzen zu Objekten gespeichert, und bei Zuweisungen wird ebenfalls die Referenz kopiert; keine Werte. Referenzen werden auch nicht auf dem Stack sodern auf dem Heap gespeichert und werden immer mit null initialisiert.Primitive Datentypen:
zu den primitiven Datentypen gehörenprimitiver Typ Long Form in Java Range sbyte System.SByte byte -128 .. 127 byte System.Byte --- 0..255 short System.Int16 short -32768 .. 32767 ushort System.UInt16 --- 0 .. 65535 int System.Int32 int -2147483648 .. 2147483647 uint System.UInt32 --- 0 .. 4294967295 long System.Int64 long -2[h]63[/h].. 2[h]63[/h]-1 ulong System.UInt64 --- 0 .. 2[h]64[/h]-1 float System.Single float ±1.5E-45 .. ±3.4E38(32 Bit) double System.Double double ±5E-324 .. ±1.7E308(64 Bit) decimal System.Decimal --- ±1E-28 .. ±7.9E28 (128 Bit) bool System.Boolean boolean true,false char System.Char char Unicodecharacter
TODO: Kompatibilität unter den Typen
Enums
Tabelle mit C/C++ erweiternheute abend gehts weiter
-
Polofreak schrieb:
okay hab es gelesen weiß aber nicht ob ich hier weiter schreiben soll, oder ob ich nen neuen THread starten sollte, aber egal ich fang mal hier an und wenn ich einen neuen hätte anfangen sollen, dann mach ich das dann. Wenn ich dennoch Fehler machen sollte, dann bitte gleich sagen.
Bitte hier weiterschreiben, bis der Artikel veröffentlichungsfertig ist.
-
ok ich schreib heute abend wieder ein wenig danke für deinen support während meines ersten Artikels.
-
Einführung in C# .Net:
1.Übersicht
2.Typen
3.Ausdrücke (Expressions)
4.Deklarationen
5.Anweisungen(Statements)
6.Klassen und Strukturen1. Übersicht:
In diesem Artikel möchte ich eine kleine Einführung in C# .Net geben und kurz und bündig erklären was C# .Net ist, Besonderheiten und Ähnlichkeiten zu anderen Sprachen sind auch mit ein Thema.
C# .Net ist eine Programmiersprache die sehr ähnlich ist wie Java
ca 70% sind wie in Java, 10% C++, 5% Visual Basic und nur 15% sind ganz neuÄhnlichkeiten zu Java:
•Objectorientierung (einfach Vererbung)
•Interfaces
•Exceptions
•Threads
•Namespaces (wie Packages)
•Garbage Collection
•Reflection
•dynamisches Code-loading
•...Ähnlichkeiten zu C++:
•überladen (von Operator)
•Pointer Arithmetic in unsicherem (unsafe) Code
•syntaktische Detailswirklich neu:
•Referenz und output Parameter
•Objekte auf dem Stack (structs)
•Rectangular Arrays
•Enumerationen
•Unified type system
•goto
•VersionierungSyntaktische Schönheiten:
•Delegates
•Indexers
•Operator overloading
•foreach Statements
•Boxing/unboxing
•Attribute
•...2. Typen (Types)
Primitive Datentypen:
zu den primitiven Datentypen gehörenprimitiver Typ Long Form in Java Range sbyte System.SByte byte -128 .. 127 byte System.Byte --- 0..255 short System.Int16 short -32768 .. 32767 ushort System.UInt16 --- 0 .. 65535 int System.Int32 int -2147483648 .. 2147483647 uint System.UInt32 --- 0 .. 4294967295 long System.Int64 long -2[h]63[/h].. 2[h]63[/h]-1 ulong System.UInt64 --- 0 .. 2[h]64[/h]-1 float System.Single float ±1.5E-45 .. ±3.4E38(32 Bit) double System.Double double ±5E-324 .. ±1.7E308(64 Bit) decimal System.Decimal --- ±1E-28 .. ±7.9E28 (128 Bit) bool System.Boolean boolean true,false char System.Char char Unicodecharacter
Kompatibilität unter den Typen
Alle Typen sind kompatibel zu "Object". Ebenso können alle Typen Variablen vom Typ Object zugewiesen werden und es sind alle Objekt-Operationen auf sie anwendbar.
Unterschied zwischen Festwert-Typen(value Types) und Referenz-Typen (reference-Types)
Festwert-Typen:
Festwert-Typen enthalten Werte die in ihnen gespeichert werden, sie werden auf dem Stack gespeichert. Bei einer Zuweisung wird der Wert kopiert. Die Initialisierung von Festwerttypen kann wie folgt aussehen:int n = 0; // oder bool b = false; // oder string s = '\0' //z.B.: int i = 99; int j = i;
Referenz-Typen:
Im Gegenteil zu Festwert-Typen werden in Referenztypen, wie der Name schon sagt, Referenzen zu Objekten gespeichert, und bei Zuweisungen wird ebenfalls die Referenz kopiert; keine Werte. Referenzen werden auch nicht auf dem Stack sodern auf dem Heap gespeichert und werden immer mit null initialisiert.string s = "cool"; string s1 = s;
TODO:
Tabelle mit C/C++ erweiternheute leider nicht all zu viel geschafft, vielleicht wirds nächstmal wieder mehr
-
hatte in letzter Zeit viel zu tun mit einem kleinen Projekt zu Netzwerkprogrammierung in C# .Net, deshalb bin ich kaum zum Artikel gekomen. Wollte einfach nur melden dass ich es nicht vergessen habe, sondern dass ich momentan einfach nicht dazu gekommen bin. Ich denke das ein weiterer TEil diese Woche fertig wird. aber steter Tropfen hölt den Stein.
bis demnächst
-
Einführung in C# .Net:
1.Übersicht
2.Typen
3.Enumerationen (Enums)
4.Boxing & Unboxing
5.Overflow Checks
6.Deklarationen
7.Anweisungen(Statements)
8.Klassen und Strukturen1. Übersicht:
In diesem Artikel möchte ich eine kleine Einführung in C# .Net geben und kurz und bündig erklären was C# .Net ist, Besonderheiten und Ähnlichkeiten zu anderen Sprachen sind auch mit ein Thema.
C# .Net ist eine Programmiersprache die sehr ähnlich ist wie Java
ca 70% sind wie in Java, 10% C++, 5% Visual Basic und nur 15% sind ganz neuÄhnlichkeiten zu Java:
•Objectorientierung (einfach Vererbung)
•Interfaces
•Exceptions
•Threads
•Namespaces (wie Packages)
•Garbage Collection
•Reflection
•dynamisches Code-loading
•...Ähnlichkeiten zu C++:
•überladen (von Operator)
•Pointer Arithmetic in unsicherem (unsafe) Code
•syntaktische Detailswirklich neu:
•Referenz und output Parameter
•Objekte auf dem Stack (structs)
•Rectangular Arrays
•Enumerationen
•Unified type system
•goto
•VersionierungSyntaktische Schönheiten:
•Delegates
•Indexers
•Operator overloading
•foreach Statements
•Boxing/unboxing
•Attribute
•...2. Typen (Types)
Primitive Datentypen:
zu den primitiven Datentypen gehörenprimitiver Typ Long Form in Java Range sbyte System.SByte byte -128 .. 127 byte System.Byte --- 0..255 short System.Int16 short -32768 .. 32767 ushort System.UInt16 --- 0 .. 65535 int System.Int32 int -2147483648 .. 2147483647 uint System.UInt32 --- 0 .. 4294967295 long System.Int64 long -2[h]63[/h].. 2[h]63[/h]-1 ulong System.UInt64 --- 0 .. 2[h]64[/h]-1 float System.Single float ±1.5E-45 .. ±3.4E38(32 Bit) double System.Double double ±5E-324 .. ±1.7E308(64 Bit) decimal System.Decimal --- ±1E-28 .. ±7.9E28 (128 Bit) bool System.Boolean boolean true,false char System.Char char Unicodecharacter
Kompatibilität unter den Typen
Alle Typen sind kompatibel zu "Object". Ebenso können alle Typen Variablen vom Typ Object zugewiesen werden und es sind alle Objekt-Operationen auf sie anwendbar.
Unterschied zwischen Festwert-Typen(value Types) und Referenz-Typen (reference-Types)
Festwert-Typen:
Festwert-Typen enthalten Werte die in ihnen gespeichert werden, sie werden auf dem Stack gespeichert. Bei einer Zuweisung wird der Wert kopiert. Die Initialisierung von Festwerttypen kann wie folgt aussehen:int n = 0; // oder bool b = false; // oder string s = '\0' //z.B.: int i = 99; int j = i;
Referenz-Typen:
Im Gegenteil zu Festwert-Typen werden in Referenztypen, wie der Name schon sagt, Referenzen zu Objekten gespeichert, und bei Zuweisungen wird ebenfalls die Referenz kopiert; keine Werte. Referenzen werden auch nicht auf dem Stack sodern auf dem Heap gespeichert und werden immer mit null initialisiert.string s = "cool"; string s1 = s;
3. Enumerationen
Liste von Namenhaften Konstanten deren Deklaration direkt im Namespace geschieht.
Beispiel:
enum Farbe{rot, gelb, blau, gruen, lila} // hier sind die Variablen automatisch 0, 1, 2... enum WochenTage_mit_d{dienstag=2,donnerstag=4} enum WochenTage_mit_d:byte{dienstag=2,donnerstag=4} //Verwendung: Farbe c = Farbe.blau; WochenTage_mit_d WTmd = WochenTage_mit_d.dienstag | WochenTage_mit_d.donnerstag; if ((WochenTage_mit_d.dienstag & WTmd) != 0) Console.WriteLine("Wochentag ist mit D!");
Was kann man mit Enumerationen machen?
Die Operatoren sind:
Vergleichsoperatoren ==; <=; >=; <; >if(c == Farbe.blau)//... if(c > Farbe.gelb && c < Farbe.lila)//... //weitere sind +; -; ++; --; c = c+2; c--; //oder gleich c++; // dann noch &; |; ~ if ((c & Farbe.rot) == 0)// ... c = c | Farbe.blau; c = ~ Farbe.rot;
Der Compiler prüft nicht ob der Enum-Typ einen gültigen Wert annimt.
Enumerationen können Integern nur nach explizitem Cast zugewiesen werden!
Enumerationen erben vom Typ Object somit: Equals, ToString, ...
Die Klasse System.Enum unterstützt Operationen wie GetName, Format, GetValues, ...??. Felder (Arrays)
Eindimmensionale Arrays:
int[] a = new int[3];
Mehrdimensionale Felder:
"ausgefranzte":int[][] ausgefr = new int[5][]; ausgefr[0] = new int[3]; a[1] = new int[4];
solche Felder sind nicht sehr schnell und brauchen mehr Speicher als
rechteckige Felder:int[,] re = new int[2, 3];
hier sind die Zugriffe effizienter und die Felder sind kompakter
4. Boxing und Unboxing
Boxing ist das Stichwort zur Umwandlung von (Structs, Enums oder Integern ...) in ein Objekt. Objekten können somit andere Typen zugewiesen werden. Das könnte dann so aussehen:
int nZahl=5; object obj = nZahl;
Unboxing ist geau das Gegenteil; aus einem Objekt ein Werttyp machen. Das sieht dann so aus:
int Zahl_aus_obj = (int)obj;
und schon hat man aus dem Objekt ein Integer gemacht.
5.Overflow Checks
Standardmäßig werden Overflows nicht abgefangen, somit kann es zu unerwünschtem Verhalten kommen. Da es aber auch sein kann, dass man mit Overflows arbeitet (Zufallszahlen) kann man manuell Overflows abfangen.int grosse_Zahl = 999999; grosse_Zahl *= grosse_Zahl; // ergibt nicht mathematisch richtiges Ergebnis aber auch keinen Fehler // wenn man es abfangen will sollte man es besser so machen: grosse_Zahl = checked(grosse_Zahl*grosse_Zahl); //wirft OverflowException
man kann aber nicht nur einzelne Operationen mit checked prüfen, man kann auch ganze Blöcke prüfen
checked{ grosse_Zahl *= grosse_Zahl; } //wirft ebenso Overflow Exception
Wenn man allerdings das komplette Assemblie geprüft ausführen will kann man checked als Kompilerfunktion angeben.
csc /checkedTest.cs
-
Wird ja langsam
Polofreak schrieb:
Einführung in C# .Net:
Referenz-Typen:
Im Gegenteil zu Festwert-Typen werden in Referenztypen, wie der Name schon sagt, Referenzen zu Objekten gespeichert, und bei Zuweisungen wird ebenfalls die Referenz kopiert; keine Werte. Referenzen werden auch nicht auf dem Stack sodern auf dem Heap gespeichert und werden immer mit null initialisiert.string s = "cool"; string s1 = s;
Erklärung soweit richtig, aber Beispiel extrem ungünstig gewählt weil bei string so einiges anders läuft als bei normalen Objekten
string x = "cool"; string x2 = x; MessageBox.Show(x2); x = "Hallo"; MessageBox.Show(x2);
Was gibts als Ausgabe? Richtig, 2x cool Liegt an dem überladen = Operator bei String. Genauso wie == bei String die Werte statt die Referenz vergleicht wie bei anderen Objekten. Es ist einfach der natürlichen Benutzungsweise von string als Wert angepasst. Nimm lieber irgend nen beliebiges anderes Objekt.
-
Nabend,
bissle pingelig, aber was solls ;).
Bei 'Kompatibilität unter den Typen' die rote Unterstreichung (Word Rechtschreib-
pruefung? ) wegmachen. Die stoert doch sehr ;).mfg
v R