C# e.KeyChar warum "e"?

lxlox

Cadet 4th Year
Registriert
Nov. 2013
Beiträge
74
Titel sagt alles. Ich frage mich warum ich bei "e.KeyChar" ein e vorsetzen soll.
 
Schau mal hier: http://msdn.microsoft.com/de-de/lib...?cs-save-lang=1&cs-lang=csharp#code-snippet-2

Eventuell liegt es an der Sprache und kommt von dem 'EVENT' welches als 'e' deklariert ist.

Zu deutsch: Es soll etwas passieren, wenn eine Taste gedrückt wird. Das Programm wartet nun auf das sog. Event. Dieses wird als e festgelegt unter 'KeyPressEventArgs e'

In dem Link siehst du auch im Beispiel, wie C++ damit umgeht, so als Vergleich.

lg
fire
 
lxlox schrieb:
Titel sagt alles. Ich frage mich warum ich bei "e.KeyChar" ein e vorsetzen soll.
Hi,
das "e" ist das EventArgs (Event arguments) Objekt das die EventDaten beinhaltet. Für andere Events gibt es andere EventArgs Objekte. Bei einem MouseEvent beinhaltet das Objekt z.B. an welchen Koordinaten die Maus stand, und ob und welche Maustaste gedrückt wurde.

Greetz
hroessler
 
Wie Du die Variable nennst, ist allein Dir überlassen. e, ev, event etc. sind aus naheliegenden Gründen üblich.
 
Ich vermute Du hast die Objektorientierung noch nicht verstanden. Es gibt keine Methoden oder Properties, die man ohne Objekt aufrufen kann. Bzw. bei statischen Membern ohne Klasse.

Aber in dem Fall ist es das Objekt. Wenn in den Methoden Parametern KeyPressEventArgs meinEvent stehen würde, musst Du zum Benutzen des EventArg Objekts entsprechend meinEvent.KeyChar schreiben.
 
soares schrieb:
Wie Du die Variable nennst, ist allein Dir überlassen. e, ev, event etc. sind aus naheliegenden Gründen üblich.

Zur Vervollständigung: Wenn du eine Variable so benennen möchtest wie ein reserviertes Keyword (z.B. "event" oder "void") dann musst du den Variablenname mit einem @ prefixen, genau so wie bei einem Verbatim String.

Bsp:

Code:
var @event = "foobar";
var @void = "poop!";
var new = new Something(); // compile error, da das @ fehlt!


Drexel schrieb:
Ich vermute Du hast die Objektorientierung noch nicht verstanden. Es gibt keine Methoden oder Properties, die man ohne Objekt aufrufen kann. Bzw. bei statischen Membern ohne Klasse.

Das ist auch nur halb richtig: Mit C# 6.0 kannst du static classes direkt in der Using direktive einbinden (siehe https://roslyn.codeplex.com/wikipage?title=Language Feature Status&referringTitle=Home):

Ein Bsp dafür wäre dann folgendes:

Code:
using System.Console;
...
...
public void Something()
{
    WriteLine("Hello World!"); // calls Console.WriteLine("Hello World!");
}
 
Zurück
Oben