AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Träume, Wünsche und Wahnvorstellungen...
Thema durchsuchen
Ansicht
Themen-Optionen

Träume, Wünsche und Wahnvorstellungen...

Ein Thema von himitsu · begonnen am 16. Mai 2011 · letzter Beitrag vom 3. Jun 2013
Antwort Antwort
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Träume, Wünsche und Wahnvorstellungen...

  Alt 25. Mai 2011, 13:18
Diese ganzen XYZ-Helper, haben ja gegenüber Ex-Methods nur den Vorteil, dass man damit Properties abbilden kann.
Nö, noch einen: Man kann damit Bugs fixen.
In C# hat eine echte Methode immer Vorrang vor den Extension Methods, d.h. wenn es eine Methode gibt namens "HansWurst" und eine Extension Method, die ebenfalls "HansWurst" heißt, wird die Extension Method niemals aufgerufen, sondern jedesmal die echte Methode. Selbst, wenn sie verschiedene Signaturen haben.
In Delphi haben die Helper den Vorrang, d.h. man hat eine Methode A und der Helper hat ebenfalls eine Methode A. Wenn jetzt irgendwo im Code Instanz.A aufgerufen wird, kommt die Helper-Methode zum Einsatz.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Träume, Wünsche und Wahnvorstellungen...

  Alt 25. Mai 2011, 15:27
Diese ganzen XYZ-Helper, haben ja gegenüber Ex-Methods nur den Vorteil, dass man damit Properties abbilden kann.
Nö, noch einen: Man kann damit Bugs fixen.
In C# hat eine echte Methode immer Vorrang vor den Extension Methods, d.h. wenn es eine Methode gibt namens "HansWurst" und eine Extension Method, die ebenfalls "HansWurst" heißt, wird die Extension Method niemals aufgerufen, sondern jedesmal die echte Methode. Selbst, wenn sie verschiedene Signaturen haben.
Das stimmt nicht! Ich kann mich erinnern, dass Oxygene sich so verhalten hat (kA ob es das nohc tut).
Aber nicht C#. Dort gewinnt die tatsächliche Methode nur wenn die Signatur gleich ist oder besser passt.

Code:
static void Miep(this Sample instance, object untypedValue)
{
   instance.Miep((int)untypedValue);
   instance.SetByExMethod = true;
}

class Sample
{
   public int Value { get; private set; }

   public bool SetByExMethod { get; set; }

   public void Miep(int newValue)
   {
      Value = newValue;
      SetByExMethod = false;
   }
}

static void Main()
{
   var s = new Sample();

   s.Miep(untypedValue: 1);
   Debug.Assert(s.Value == 1 && s.SetByExMethod);

   s.Miep(2);
   Debug.Assert(s.Value == 2 && !s.SetByExMethod);

   s.Miep((Object)3);
   Debug.Assert(s.Value == 3 && s.SetByExMethod);
}
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”

Geändert von Elvis (25. Mai 2011 um 15:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Träume, Wünsche und Wahnvorstellungen...

  Alt 25. Mai 2011, 15:35
]Das stimmt nicht! Ich kann mich erinnern, dass Oxygene sich so verhalten hat (kA ob es das nohc tut).
Aber nicht C#. Dort gewinnt die tatsächliche Methode nur wenn die Signatur gleich ist oder besser passt.
Ist mein Gedächtnis so schlecht? Ich ahbe auch mehrere Monate mit C# gearbeitet und mich dauernd eben darüber geärgert
Irgendwie kann ich mir auch nicht vorstellen, dass Oxygene und C# da unterschiedlich verfahren.

[edit]
Du hast Recht, hab nochmal nachgeguckt.

An meiner Grundaussage rüttelt das jedoch nichts:
C#: echte Methoden Vorrang
Delphi: Helper-Methoden Vorrang

Geändert von implementation (25. Mai 2011 um 15:39 Uhr)
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Träume, Wünsche und Wahnvorstellungen...

  Alt 25. Mai 2011, 18:06
Ahh ich hätte da noch was:

Alle Dreingaben / Zusatzsoftware / Stückwerk mit in den Hauptinstaller packen. Bis man den ganzen Kram einzeln deinstalliert hat, hat man einen Bart

Und ein schnelleres EDN.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.314 Beiträge
 
Delphi 12 Athens
 
#5

AW: Träume, Wünsche und Wahnvorstellungen...

  Alt 25. Mai 2011, 18:15
Den Installer sollte man sowieso mal überarbeiten ... du willst nicht wissen, was für ein Schrott da drinnen enthalten ist.
(wer den Schock für's Leben haben will, der brauch sich diesen nur mal ansehn)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Träume, Wünsche und Wahnvorstellungen...

  Alt 25. Mai 2011, 18:19
Gilt funktionierendes Error Insight eigentlich als Traum oder Wahnvorstellung?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#7

AW: Träume, Wünsche und Wahnvorstellungen...

  Alt 25. Mai 2011, 18:20
Beides
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.848 Beiträge
 
Delphi 12 Athens
 
#8

AW: Träume, Wünsche und Wahnvorstellungen...

  Alt 25. Mai 2011, 20:27
Gilt funktionierendes Error Insight eigentlich als Traum oder Wahnvorstellung?
In XE habe ich damit kaum noch Probleme. Wenn ich eine Unit neu hinzufüge oder so wird schon mal einiges als falsch markiert, aber wenn ich die Datei oder das Projekt schließe und wieder öffne, ist es wieder in Ordnung.

// EDIT:
Die größten Probleme habe ich im Grunde mit Compilerdefines usw., die in der IDE nicht korrekt ausgewertet werden. Denn das führt dazu, dass die Codenavigation usw. nicht funktioniert...
Sebastian Jänicke
AppCentral

Geändert von jaenicke (25. Mai 2011 um 20:31 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz