Ich hoffe dir ist bewusst, dass du den Inhalt des Originalstrings so nicht ändern kannst (call by Value). Wenn das nicht dein Ziel ist und du den String nur für die weiterverarbeitung dieses String ihn trimmen möchtest, weiß nicht wo dein Problem liegt (vermutlich bei der Syntax irgendwo) da es bei mir so einwandfrei funktioniert.
Bei NetBeans kann man auch einstellen, dass er diese Semantik als Warnung kennzeichnet. Die Beschreibung zu diesem Hint lautet:
Reports any instances of assignment to a variable declared as a method parameter. It also reports any attempt to increment or decrement the variable. While occasionally intended, this construct can be extremely confusing, and is often the result of a typo.
Ich glaub Fowler schreibt auch im Refactoring Buch darüber...
Meiner Meinung nach ist es eigentlich kein Code Smell... gibt es wirklich Programmierer, die bei so einer Zeile denken, dass auch die Variable im aufrufenden Code geändert wird? Das kann mal einem Anfänger passieren, man sollte es aber schnell verstanden haben, dass dem nicht so ist...
Naja, vlt kann der Editor nicht unterscheiden ob es primitive Werte sind, die übergeben werden, oder Objekte, deswegen meldet er bei allem eine Warnung (da ja Objekte ByRef übergeben werden und somit so verändert werden können).
das Verändern an sich wird ja gerade eher nicht verhindert und auch final hat damit nichts zu tun,
das Verändern von Parametern geht, mal nützlich, mal weniger..,
es geht hier immer um Neuzuweisung der Variablen, da ist es egal ob Objekt oder primitiv,
in beiden Fällen hilft final, in beiden Fällen kann es dem Aufrufer schnuppe sein,
ich halte von der Warnung auch nicht so viel
Ich finde, dass solche Kommentare den höflichen und respektvollen Umgang in einem Forum stören. Auf einer Site wie dieser sind weibliche Mitglieder erfahrungsgemäß ohnehin seltener anzutreffen als männliche und wenn sie dann über derartige Sätze stolpern, werden sie vielleicht geneigt sein, ihre Besuche in diesem Forum noch weiter zu reduzieren.
Ich finde, dass solche Kommentare den höflichen und respektvollen Umgang in einem Forum stören. Auf einer Site wie dieser sind weibliche Mitglieder erfahrungsgemäß ohnehin seltener anzutreffen als männliche und wenn sie dann über derartige Sätze stolpern, werden sie vielleicht geneigt sein, ihre Besuche in diesem Forum noch weiter zu reduzieren.
Ich glaub Fowler schreibt auch im Refactoring Buch darüber...
Meiner Meinung nach ist es eigentlich kein Code Smell... gibt es wirklich Programmierer, die bei so einer Zeile denken, dass auch die Variable im aufrufenden Code geändert wird? Das kann mal einem Anfänger passieren, man sollte es aber schnell verstanden haben, dass dem nicht so ist...
Ich finde, dass solche Kommentare den höflichen und respektvollen Umgang in einem Forum stören. Auf einer Site wie dieser sind weibliche Mitglieder erfahrungsgemäß ohnehin seltener anzutreffen als männliche und wenn sie dann über derartige Sätze stolpern, werden sie vielleicht geneigt sein, ihre Besuche in diesem Forum noch weiter zu reduzieren.
Naja, vlt kann der Editor nicht unterscheiden ob es primitive Werte sind, die übergeben werden, oder Objekte, deswegen meldet er bei allem eine Warnung (da ja Objekte ByRef übergeben werden und somit so verändert werden können).
ja verändern kann man Objekte schon, aber natürlich nicht die Referenz! die Zuweisung wirst du drausen nie mitbekommen ob es jetzt nun 5, "BIER" oder dein wichtigestes Kundenobjekt war..
, werden sie vielleicht geneigt sein, ihre Besuche in diesem Forum noch weiter zu reduzieren.
Sonecc, ich habe ARadauers Beitrag so verstanden, dass ein Compiler, der Warnungen wirft, vergleichbar sei mit einer nervigen pingeligen Frau, die unnützes Gewäsch von sich gibt. Einen solchen Vergleich empfinde ich persönlich als sexistisch. Macht es das für dich klarer?
Ich finde, dass solche Kommentare den höflichen und respektvollen Umgang in einem Forum stören. Auf einer Site wie dieser sind weibliche Mitglieder erfahrungsgemäß ohnehin seltener anzutreffen als männliche und wenn sie dann über derartige Sätze stolpern, werden sie vielleicht geneigt sein, ihre Besuche in diesem Forum noch weiter zu reduzieren.
Würde hier ewig diskutiert werden, wenn statt "Tussi" an dieser Stelle "Weichei" stünde (was m.E. ebenfalls nicht wirklich bedeutungsgleich mit dem - an dieser Stelle eher angemessenen - "überempfindlich" wäre?
Ich kann verstehen, wieso da eine Warnung geschmissen wird, angenommen man hat eine etwas längere Methode, kennt aber die Parameter-Variablen Namen. Jetzt wird genau so eine Variable weiter unten an eine andere Methode übergeben. Hierbei übersieht man jetzt schnell, dass es sich gar nicht mehr um das Argument der Methode, sondern bereits um eine neue Variable handelt.
... nervigen pingeligen Frau, die unnützes Gewäsch von sich gibt. Einen solchen Vergleich empfinde ich persönlich als sexistisch. Macht es das für dich klarer?
also jetzt mal im Ernst, das war ganz bestimmt nicht böse gemeint, und dieser scherzhafte Vergleich ist bestimmt nur wenigen aufgefallen... Aber dank dir, ist es jetzt zum Hauptthema des Threads geworden. Bravo! :bahnhof:
nervigen pingeligen Frau, die unnützes Gewäsch von sich gibt
ARadauer ist Österreicher, die haben kürzlich sogar ihre Nationalhymne korrigiert im Sinne der Gleichberechtigung.
Natürlich sind Tussis nicht weniger schlecht als Weicheier, man sollte schon ein "equal opportunity offender" sein, also jemand der alle Seiten abwechselnd gleich beleidigt, schon der Balance wegen.
Zum Thema:
Parametern neue Werte zuzuweisen ist schlechter Stil, kann zu schwer auffindbaren Bugs führen, Andi_CH hatte vor ein paar Monaten so ein Beispiel.
Wenn die Parameter als final deklariert werden, wird aus einer Warnung ein Error.
Es kostet nix da eine neue Variable einzuführen, ausser eine Zeile Code.