AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Neuester QC-Lacher

Ein Thema von Union · begonnen am 5. Nov 2013 · letzter Beitrag vom 6. Nov 2013
Antwort Antwort
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#1

Neuester QC-Lacher

  Alt 5. Nov 2013, 18:37
Am 25. September hatte ich nach einer Diskussion mit Marco Cantù ein QC erstellt wegen TCustomAttributes. Den Testfall hatte ich zum Nachvollziehen unter "Steps" geposted.

Es endete wie eigentlich immer - "As Designed".

Auf meine Rückfrage wo dies denn dokumentiert sei erhielt ich nie Antwort. Jetzt habe ich bei der Kontrolle des QC-Status nochmal nachgeschaut und siehe da - die Dokumentation wurde am 2. Oktober dahingehend ergänzt. Durch PASTEN des QC inkl. Source.

Leider hat nicht mal das geklappt, die Hälfte der Testprozedur wurde nicht mit kopiert, so dass sich der Sinn (The following code snippet demonstrates this ...) dem Betrachter nicht so ganz erschließt.

So kann man natürlich auch nachträglich Tatsachen schaffen
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Neuester QC-Lacher

  Alt 5. Nov 2013, 18:51
Schön dass das jetzt dokumentiert wurde, andererseits gehörst du natürlich geteert wenn du ein Attribut ohne Suffix benennst

Mit deinem "Expected result" stimme ich auch nicht überein. Schöner wäre da imho ein Compiler-Fehler. Zum Beispiel sowas:
Zitat:
Fehler: "MyTest" kann "ConsoleTest.MyTest" oder "ConsoleTest.MyTestAttribute" sein. Verwenden Sie entweder "@MyTest" oder "MyTestAttribute". Program.cs
Von mir aus dürfte der aber auch schon kommen, wenn man eine Klasse von (TCustom)Attribute ableitet, aber das Suffix nicht benutzt. Wir lernen daraus: Sich an Namenskonventionen halten, sonst erlebt man böse Überraschungen

Geändert von jfheins ( 5. Nov 2013 um 18:53 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Neuester QC-Lacher

  Alt 5. Nov 2013, 19:03
Kein Zweifel, dass dieses Verhalten von Anfang an so hätte dokumentiert werden müssen. Auch hier hat man offenbar gedacht, "das machen die bei C# so, das machen wir auch". Bei einer derart streng typisierten Sprache wie Delphi erschließt sich mir nicht, warum man dem Compiler ausgerechnet hier Spielraum lässt.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.093 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Neuester QC-Lacher

  Alt 5. Nov 2013, 19:09
Dass man das "Attribute"-Postfix auch weglassen kann wusste ich zwar, dass eins in diesem Fall komplett verdeckt werden würde habe ich aber auch nicht eingeplant.

Eine offizielle Namenskonvention kann ich im Wiki-Artikel aber nicht finden. Der dann angegebene Codeschnipsel ist auch etwas unverständlich abgeschnitten. Aber insgesamt finde ich das auch keinen "Lacher". Natürlich hat man hier oft Probleme, ernst genommen zu werden, aber insgesamt sagt der Wiki-Artikel doch jetzt alles was man wissen muss, oder?
  Mit Zitat antworten Zitat
Elvis

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

AW: Neuester QC-Lacher

  Alt 6. Nov 2013, 12:18
Der Fehler sollte wenn, dann erst im Falle einer Kollision erzeugt werden.
Also wenn ein Attribute ohne Suffix genutzt wird, und es ein anderes im Scope gibt, welches auch passen könnte.

Wenn C# als Beispiel Pate stand, dann lief das was schief: C# würde das nämlich nicht zulassen. (C# lässt generell keine Namenskollisionen zu)
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.”
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

AW: Neuester QC-Lacher

  Alt 6. Nov 2013, 13:05
Der Fehler sollte wenn, dann erst im Falle einer Kollision erzeugt werden.
Also wenn ein Attribute ohne Suffix genutzt wird, und es ein anderes im Scope gibt, welches auch passen könnte.

Wenn C# als Beispiel Pate stand, dann lief das was schief: C# würde das nämlich nicht zulassen. (C# lässt generell keine Namenskollisionen zu)
Naja, die C# Fehlermeldung habe ich ja oben gepostet: Der Fehler kommt bei der Verwendung des Attributes. Deklariert man zwei Attribute (einmal "MyTestAttribute", und "MyTest") so compiliert das noch wunderbar. Erst beim Versuch, es mit [MyTest] zu verwenden schlägt der Compiler mit o.g. Fehlermeldung an. Und in diesem Fall kann man dann die Mehrdeutigkeit manuell auflösen, indem man z.B. [@MyTest] schreibt. (Habe diese Verwendung des @ noch nicht gesehen...)

Aber ja, es ist sehr wahrscheinlich dass hier C# als Pate stand - dann hätte man aber das Feature auch ruhig etwas besser kopieren können inkl. der Compilerfehler.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz