StructPerformance

Aus Das Sopra Wiki
Version vom 18. November 2009, 19:38 Uhr von Florian (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{Stub}} Wenn man in C# mit Structs arbeitet gibt es vor allem im Hinblick auf die Performance ein paar Aspekte die man beachten sollte. Diese…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen



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 ==