Hansmaulwurf
u wot m8?
|
Hi. Ich steh gerade komplett an bei einer Erläuterung des "this" Operators. Das einzige was ich weiß "Das this-Schlüsselwort verweist auf die aktuelle Instanz der Klasse" ![:confused:](/images/smilies/confused.gif) Ich soll ein kurzes Fragment schreiben, wo der this Operator für eine Methode wirklich notwendig ist, und hab aber keinen Plan.. Google liefert alles nur nicht das was ich will. (Term "this" gefällt ihm wohl nicht so ![:p](/images/smilies/tongue.gif) )
|
Obermotz
Fünfzylindernazi
|
Wenn mehrere Methoden/Variablen gleichen Namens existieren - this-> und die Sache ist eindeutig.
|
AoD
aka AngelOfDeath
|
public class Person
{
private string _vorname;
public string Vorname
{
get { return _vorname; }
set { _vorname = value; }
}
public Person(string Vorname)
{
this.Vorname = Vorname;
}
}
ohne this, würdest du den Parameter sich selbst zuweisen.
|
Hansmaulwurf
u wot m8?
|
Ok, langsam wirds glaub ich.. Aber @ AoD's Beispiel. Welcher ist dann der this.Vorname, bzw welcher Vornahme wird draufgeschrieben? Ich steh nur gerade ein bissi am Schlauch, da ich schon seit 3 Stunden sitz, und das schon länger nicht mehr angerührt hab, und da denkt mein Hirn dann zu kompliziert
|
AoD
aka AngelOfDeath
|
this.Vorname = Property Zeile 4-8 Vorname = Parameter des Konstruktors Zeile 10
this.Vorname = Vorname kann man lesen Property der Instanz = Parameter des Kontruktors
|
semteX
begehrt die rostschaufel
|
also so wie du das erklärst solltest besser nie lehrer werden ![;)](/images/smilies/wink.gif) mit Vorname ist, wie gesagt, ein property in der Klasse. wenn du jetzt this.Vorname aufrufst, wird Vorname der eigenen Klasse ausgeführt. und ned von irgend ner andern. oder gar von dem Vorname, was da via parameter daher kommt. this verweist sozusagen IMMER auf "zeug aus meiner eigenen klasse"... und ned auf variablen, die irgendwie als parameter daher kommen. allerdings rechtfertigt das eh scho wieder nen flame: Variablennamen mit nem groß buchstaben beginenn zu lassn ist ein guter grund für 50 peitschenhiebe auf den nackten hintern.
|
Symon
Addicted
|
allerdings rechtfertigt das eh scho wieder nen flame: Variablennamen mit nem groß buchstaben beginenn zu lassn ist ein guter grund für 50 peitschenhiebe auf den nackten hintern. also imho is das durchaus so üblich in c# um die getter/setter zu kennzeichnen und die private var dazu mit _* zu benennen.
|
DKCH
Administrator ...
|
Bearbeitet von DKCH am 13.03.2008, 19:09 (link fixed)
|
Hansmaulwurf
u wot m8?
|
Ok, danke an alle. Das war nur eben so extrem blöd wegen Google inkombilität, und die Microsoft Hilfe ist auch nicht so das gelbe vom Ei
|
COLOSSUS
AdministratorGNUltra
|
pah, getter/setter-Methoden sind generell urgh!. Ruby macht vor, wie es schoen ist ![:)](/images/smilies/smile.gif) Unlike the "getter" and "setter" methods of other languages like C++ or Java, accessor methods in Ruby can be written with a single line of code. Quelle: Wikipedia
|
DKCH
Administrator ...
|
pah, getter/setter-Methoden sind generell urgh!. Ruby macht vor, wie es schoen ist ![:)](/images/smilies/smile.gif)
Quelle: Wikipedia und, was hilfts jemand der c# verwendet? ![;)](/images/smilies/wink.gif) themenverfehlung, fünf, setzen
|
semteX
begehrt die rostschaufel
|
also imho is das durchaus so üblich in c# um die getter/setter zu kennzeichnen und die private var dazu mit _* zu benennen. getter + setter (in c# ja kurz: propertys): JA variablen, die als argumente übergeben werden (String Vorname): no fcking way.
|
DKCH
Administrator ...
|
pah, getter/setter-Methoden sind generell urgh!. Ruby macht vor, wie es schoen ist ![:)](/images/smilies/smile.gif)
Quelle: Wikipedia aja, was ich vergessen hab: ganz lernresistent is ja nicht mal ms, in c# 3.0 gibts public string Vorname { get; set; }. wird schon, mitm ruby-style
|
COLOSSUS
AdministratorGNUltra
|
und, was hilfts jemand der c# verwendet? themenverfehlung, fünf, setzen Dann setz' dich gleich neben mich, Mr.-Visual-Basic-Cross-Referencer. (Manchmal ist es aber auch gar nicht schaedlich, ueber den tellerrand zu schauen ![:eek:](/images/smilies/eek.gif) )
|
AoD
aka AngelOfDeath
|
allerdings rechtfertigt das eh scho wieder nen flame: Variablennamen mit nem groß buchstaben beginenn zu lassn ist ein guter grund für 50 peitschenhiebe auf den nackten hintern. Es war ja nur als ein Beispiel für die Notwendigkeit des this Operators gedacht, da mir nichts anderes eingefallen ist. In meinem normalen Code haben Parameter natürlich einen Kleinbuchstaben am Anfang ![;)](/images/smilies/wink.gif) aja, was ich vergessen hab: ganz lernresistent is ja nicht mal ms, in c# 3.0 gibts public string Vorname { get; set; }. wird schon, mitm ruby-style ![;)](/images/smilies/wink.gif) Ergänzung: Die heißen dann "Automatic Properties"
|