Zwei Methoden mit gleichem Namen und Code aber unterschiedlichen Parametern
-
da ich aber versuche auf Performance zu achten, versuche ich jede for-Schleife zu vermeiden.
Spürt man so eine Schleife in Performance?Das lässt sich so einfach nicht sagen.
Wenn "ChangeSelectionSet" nahezu nichts tut, und die Listen auch mal lange werden können, dann kann schon sein dass du es deutlich spürst.Sobald "ChangeSelectionSet" einiges an Arbeit verrichtet, wird der Overhead des Listen-Kopierens vermutlich total untergehen.
-> ausprobieren
BTW: mit C# 4.0 sollte das dann glaube ich endlich erledigt sein. Stichwort Covariance von Generics und so. Hilft dir aber vermutlich *jetzt* nicht viel
-
THE_ONE schrieb:
da ich aber versuche auf Performance zu achten, versuche ich jede for-Schleife zu vermeiden.
Spürt man so eine Schleife in Performance?1. Schlag mal den Begriff "Premature Optimizing" nach und verinnerlich dessen Bedeutung.
2. Nachdem Du verstanden hast was premature Optimizing bedeutet, präge Dir folgende Grundregel dazu ein: DONT DO IT.
3. So, nachdem Du dann (hoffentlich) begriffen hast was ich damit sagen wollte, kümmer Dich erst einmal um die FUNKTION deines Codes und scheiss auf Performance. Solange Du die Grundlagen der Programmierung nicht verstehst ist es absolut sinnlos über highlevel-Themen wie OPtimierung, Performance und Eleganz anchzudenken.
4. Als Zusatzthema denk mal über folgende Regel und deren Bedeutung nach: "First make it run, than make it fast".
-
Hallo THE_ONE,
wenn es wirklich (syntaktisch) derselbe Code ist, reicht es aus, wenn du eine generische Methode deklarierst:
private void ChangeSelectionSet<T>(List<T> devList) where T : Device { // ... }
Da MyDevice von Device erbt, ist es ja automatisch auch ein Device.
Du darfst jetzt aber dann KEINE MyDevice-Methoden innerhalb aufrufen (wenn doch, dann mußt du die Methoden in Device virtuell machen und in MyDevice überschreiben).
-
Manchmal ist es zu einfach
-
Th69 schrieb:
Hallo THE_ONE,
wenn es wirklich (syntaktisch) derselbe Code ist
ja ist er!
Th69 schrieb:
Hallo THE_ONE,
, reicht es aus, wenn du eine generische Methode deklarierst:
private void ChangeSelectionSet<T>(List<T> devList) where T : Device { // ... }
Danke genau das habe ich gesucht!
hustbaer schrieb:
BTW: mit C# 4.0 sollte das dann glaube ich endlich erledigt sein. Stichwort Covariance von Generics und so. Hilft dir aber vermutlich *jetzt* nicht viel
hab etwas dazu im Internet gesucht und bin auf dass hier gestoßen (Ist zwar Java, aber das wird dann in C# wahrscheinlich auch so funktionieren):
http://www.fh-wedel.de/~si/seminare/ws05/Ausarbeitung/5.generics/genjava3.htm
-> genau das wäre auch eine Lösung!
-
Knuddlbaer schrieb:
Manchmal ist es zu einfach
Vorallem für Klugscheißer.
Hast Du die Grundlagen schon durch?
-
Da bin ich doch froh das Deine Antwort auf die eigentliche Frage "Premature Optimizing" war. War die Frage im aller ersten Post für den Profi zu schwer oder deren Antwort nicht würdig !?
-
Da versucht nur einer mich schlecht zu machen, der Klugscheisser Post war nicht von der gleichen Person wie die beiden anderen loks-Posts in diesem Thread.
-
Tjoa du könntest sowas umgehen indem du dich anmeldest, dann entstehen auch nicht so sinnfreie Diskussionen
-
Firefighter schrieb:
Tjoa du könntest sowas umgehen indem du dich anmeldest, dann entstehen auch nicht so sinnfreie Diskussionen
Mag sein. War ich sogar schonmal vor langer Zeit. Aber solange wie hier im Forum jeder anonym posten kann sehe ich die Anmeldung nicht ein.