URL: https://www.overclockers.at/coding-stuff/c_this-operator_192819/page_1 - zur Vollversion wechseln!
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"
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 )
Wenn mehrere Methoden/Variablen gleichen Namens existieren - this-> und die Sache ist eindeutig.
Code:public class Person { private string _vorname; public string Vorname { get { return _vorname; } set { _vorname = value; } } public Person(string Vorname) { this.Vorname = Vorname; } }
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
this.Vorname = Property Zeile 4-8
Vorname = Parameter des Konstruktors Zeile 10
this.Vorname = Vorname
kann man lesen
Property der Instanz = Parameter des Kontruktors
also so wie du das erklärst solltest besser nie lehrer werden
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.
also imho is das durchaus so üblich in c# um die getter/setter zu kennzeichnen und die private var dazu mit _* zu benennen.Zitat von semteXallerdings 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.
üblich (leider) ja (danke an die vb-coder da draussen), empfohlen/sinnvoll/schön nein. siehe auch http://msdn2.microsoft.com/en-us/library/ms229045.aspx
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
pah, getter/setter-Methoden sind generell urgh!. Ruby macht vor, wie es schoen ist
Quelle: WikipediaZitatUnlike 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.
Zitat von COLOSSUSpah, getter/setter-Methoden sind generell urgh!. Ruby macht vor, wie es schoen ist
Quelle: Wikipedia
getter + setter (in c# ja kurz: propertys): JAZitat von Symonalso imho is das durchaus so üblich in c# um die getter/setter zu kennzeichnen und die private var dazu mit _* zu benennen.
Zitat von COLOSSUSpah, getter/setter-Methoden sind generell urgh!. Ruby macht vor, wie es schoen ist
Quelle: Wikipedia
Zitat von DKCHund, was hilfts jemand der c# verwendet?themenverfehlung, fünf, setzen
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 AnfangZitat von semteXallerdings 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.
Ergänzung: Die heißen dann "Automatic Properties"Zitat von DKCHaja, 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
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025