Call by value
vs.
Call by reference

Marvin Borner

Call by value

Der Standard in den meisten Sprachen

                    
[C#-Console] 0

Call by reference

Wird meist bewusst verwendet

Kann in C# mit dem ref keyword umgesetzt werden

                    
[C#-Console] 42

Besonderheiten - Objekte

                        
                        
[C#-Console] 1, 2, 3, 4, 5
                        
                        
[C#-Console] 1, 2, 3
                        
                        
[C#-Console] 42

Besonderheiten - Arrays

                        
                        
[C#-Console] 42
                        
                        
[C#-Console] 1
                        
                        
[C#-Console] 4

Mehrere Rückgabewerte

                        
                        
[C#-Console] 1, 2, 3

Vorteile von call by reference

  • Muss nicht extra kopiert werden (weniger Overhead)
    • → schneller
  • Eine Funktion kann mehrere Rückgabewerte besitzen

Nachteile von call by reference

  • Teilweise nicht sehr lesbar/verständlich
  • Probleme mit Garbage Collectors und Multi-Threading

Andere Sprachen

C

                        
                        
[C-Console] 42

JavaScript

                        
                        

Danke, dass Sie so leise und aufmerksam waren. Tschüss!

Marvin Borner