StructPerformance
Aus Das Sopra Wiki
Wenn man in C# mit Structs arbeitet gibt es vor allem im Hinblick auf die Performance ein paar Aspekte die man beachten sollte. Dieser Artikel zeigt die Unterschiede in der Verwendung von Structs und worauf man achten muss.
Call by Value
Bei C# geschehen Parameterübergaben bei Funktionsaufrufen (genauso wie bei Java) implizit immer in Form von "Call by Value". Das heisst dass übergebene Variablen für die Verwendung in Methoden kopiert werden.
Hier ist ein Codebeispiel dazu:
class Test
{
public int number;
public Test(int number)
{
this.number = number;
}
}
public class MyApp
{
public static void Main()
{
Test test = new Test(7);
Change_Number1(test);
System.Console.WriteLine(test.number); // gibt 7 aus
Change_Number2(test);
System.Console.WriteLine(test.number); // gibt 3 aus
}
public void Change_Number1(Test test)
{
test = new Test(3);
}
public void Change_Number2(Test test)
{
test.number = 3;
}
}
Call by Reference
== Rückgabewerte ==