Suchergebnisse

Suchergebnisse 1-11 von insgesamt 11.

  • Benutzer-Avatarbild

    ByRef/ByVal ist keine Entscheidung wegen Speicherplatz oder Performance. Hab ich eigentlich mal erwähnt, dass man von Speicher- oder Performance - Optimierungen tunlichst die Finger lassen möge? Haupt-Kriterium für Code-Qualität ist Lesbarkeit und Architektur. Speicher und Performance kommen 50km weiter hinten. Oder pointierter: Wenn man auf Speicherbedarf und Performance stiert, dann ist man dabei, schlechten Code zu schreiben, weil man focussiert nicht mehr aufs Wesentliche. Aber zurück zu ByR…

  • Benutzer-Avatarbild

    Zitat von Haudruferzappeltnoch: „ wenn ich eine Function (also deren Return-Value) einer anderen Function als Parameter übergebe? - Ist da dann eine Variable außerhalb beider Functions im Speicher?“nein. Allerdings der gezeigte Code wird Probleme machen, weil der Rückgabewert von test1() ist bereits disposed, wenn er dem Aufrufer returnt wird. Und um disposable Objekte (wie etwa dbCommands) musste dir sehr wohl Sorgen machen, damit die nicht undisposed zurückbleiben.

  • Benutzer-Avatarbild

    Zitat von Haudruferzappeltnoch: „Ich habe aber ja gerade festgestellt, dass das Objekt, das in der Funktion erzeugt wird nicht disposed werden kann, wenn man es noch zurückgeben möchte.“Ich glaube, du meinst ein bischen was anderes: Zitat von Vermutung': „Ich habe aber ja gerade festgestellt, dass das Objekt, das in der Funktion erzeugt wird nicht disposed werden darf, wenn man es noch zurückgeben möchte.“Jo - isso.

  • Benutzer-Avatarbild

    Zitat von petaod: „Ich verstehe nicht, warum du unbedingt von Hand disposen willst. Da haben sich die Compilerentwickler sehr viele Gedanken gemacht, damit das automatisch geht.“Das ist nicht richtig. Disposen geht nicht automatisch, und muss immer von Hand gemacht werden. Mir scheint, du verwechselst Disposen mit der Garbage-Collection, oder mit dem Finalizer. Weil auf den GC trifft zu was du sagst: der gibt automatisch SystemResourcen frei, die nicht mehr gebraucht werden. Und zwar äusserst ef…

  • Benutzer-Avatarbild

    tja, du liegst falsch. Such dir Buch oder gute Info im Internet (CodeProject-Artikel, MS-Doku) und bring dich auffn Stand. Du kannst auch ein Experiment machen: Öffne einen Filestream, lies zwei Zeichen aus, und lass ihn aus dem Scope gehen. Dann versuch dieselbe Datei mit Notepad zu öffnen, zu ändern, zu speichern. Wenn ich mich recht erinnere kriegst du dabei die Info, dass die Datei gesperrt ist. Die wird erst wieder frei, wenn du dein Programm schließt.

  • Benutzer-Avatarbild

    Zitat von Haudruferzappeltnoch: „Also sind Disposable Objekte nicht generell nicht verwaltet?“lies nochma vpzs post: als Managed werden wohl die bezeichnet, die IDisposable implementieren. Folglich als unmanaged jene, die IDisposable nicht implementieren. Wobei ich bei unmanaged Objects nicht recht weiss, warum ich die freigeben sollte - das macht doch der GC. C#-Quellcode (1 Zeile)sehe ich mit Unbehagen. Was, wenn mein Dispose die unmanaged Resourcen (was immer das sein mag) nicht korrekt und v…

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „Halbwissen ... Bitte ein paar korrigierende Aussagen von Leuten, die sich wirklich auskennen“hahaha - der war gut! Mir gehts wie Haudruff - ich hab im INet noch nix gefunden, wo ich dachte: "Ah, der kennt sich aus, und kanns erklären in dem Sinne, dasses hinterher klar ist." Zitat von Haudruferzappeltnoch: „Und es steht extra dabei als Kommentar diese argumentfreie Dispose-Methode nicht zu ändern“Wie gesagt: Mich gruselt das total, den GC zu umgehen - da kann MS sonstwas in…

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „doppeldisposen ist nicht erlaubt“Das ist nun was ich für unabdingbaren Bestandteil des Dispose-Patterns halte: Natürlich muss mans so machen, dass ein Mehrfach-Dispose-Aufruf vollkommen unbedenklich ist. Also das halte nicht nur ich so, sondern das habich auch mehrfach iwo gelesen, mindestens auch bei MS. Aber mit der disposed-Variable ist dem ja genüge getan. Ich würds allerdings ohne machen - weil je weniger Variablen desto besser:VB.NET-Quellcode (15 Zeilen)

  • Benutzer-Avatarbild

    Zitat von ISliceUrPanties: „Hier mal zwei Videos, die den GC und das Dispose-Pattern, wie ich finde, ziemlich gut erklären. “Ich mag die Quatschköppe nicht 15min lang angucken müssen, und aufgrund meines schlechten Englisches nur bruchstückweise verstehen. Gibts nicht iwas, was man lesen kann, und ggfs. auch nachlesen (mw. auch Englisch)?

  • Benutzer-Avatarbild

    Zitat von ISliceUrPanties: „Grundsätzlich ist für mich immer die MS Doku eine gute Anlaufstelle“jo, das ist doch was. Und daneben findet sich ja auch diese Erklärung: What is "managed code"? Aufs Disposen bezogen bestätigt das meine Ansicht: Im Dispose() sollte man aufräumen, was der GC nicht aufräumen kann. Das sind v.a. drei Dinge:1. Disposable Objekte (die sind managed, aber kanner trotzdem nur teilweise bereinigen) 2. InterOp-Krimskrams (ebenfalls managed, aber kanner trotzdem nur teilweise …

  • Benutzer-Avatarbild

    Wie gesagt: Man muss Dispose so implementieren, dasses keine Fehler erzeugt, wenns mehrfach aufgerufen wird. Wenn Excel.Quit ins Dispose rein soll, dann muss mans eben mit einer Prüfung versehen, ob Excel ühaupt offen ist.