www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheC#-Forum

mrfrost

Gepostet:
09.07.2003 01:00

ref und non value types  
moin!

Non value types werden in C# doch immer by reference an Methoden übergeben, richtig? Macht es dann überhaupt Sinn <code>ref für non value types zu benutzen? Hat man in der Methode dann einen Verweis auf den Verweis auf den Speicher.

Die Frage ist, ob ich

method(ref Klasse identifier)
oder
method(Klasse identifier)

benutzen soll?
Help appreciated.
Smilie
Zum Seitenanfang    
 
Pulpapex

Gepostet:
14.07.2003 20:52

   
Das Schlüsselwort ref bei Referenztypen anzugeben, macht nur in einigen Sonderfällen Sinn. Zum Beispiel, wenn es ums Marshallen von Objekten geht. Wenn man mittels Remoting eine entfernte Methode aufruft, werden im Normalfall die Methodenparameter als In-Parameter behandelt. Das heisst, wenn die aufgerufene Methode Änderungen an einem übergebenen Parameter vornimmt, kommen diese nicht beim Aufrufer an, egal ob es sich um einen Referenztyp handelt oder nicht. Wenn der Programmierer aber ref-Parameter benutzt, erkennt das Marshalling-System, dass die Änderungen auch zurückgeben werden sollen.

Ähnlich sieht es mit beim Zugreifen auf COM oder allgemein ungemanagten Code aus. Nur mit dem Unterschied, dass man hier statt ref-Parametern die Parameter-Attribute [In, Out] angeben muss/kann.


Gruß
Pulpapex
Zum Seitenanfang    
 
mrfrost

Gepostet:
12.08.2003 19:23

   
Danke für die ausführliche Antwort. Ich benutze den ref Parameter auch für Referenztypen, um zu verdeutlichen, dass die Methode den Parameter verändert.
Mittlerweile habe ich nun auch mein erstes C# Projekt fertiggestellt: http://www.thomas-alfeld.de/frank/index.php?file=MyOpenSource%2FDrohne

Viele Grüße,
Frank
Zum Seitenanfang