lima-city: Webhosting, Domains und Cloud
2 Pluspunkte 0 Minuspunkte

Gibt es Pointer in C# und wie benutzt man sie? Ich möchte einen Zeiger auf ein Int an die Funktion übergeben so dass die Variable geändert wird ohne eine Kopie davon zu erstellen.

static void Increment(int* i)
{

    *i++;

}
von  

1 Antwort

1 Pluspunkt 0 Minuspunkte

Wenn du tatsächlich Pointer nutzen möchtest musst du das Keyword unsafe verwenden. 

static unsafe void Increment(int* i)
{

    *i++;

}

Increment(&count);

Die bessere Alternative zu Pointer sind Referenzen. Durch das Keyword "ref" übergibst du statt der Variable selbst eine Referenz darauf.

using System;

class Program
{

    static void Main()
    {
        int count = 5;
        Increment(ref count);
        Console.WriteLine(count);
    }

    static void Increment(ref int i)
    {
        i++;
    }

}
von (718 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2.3k Fragen

2.8k Antworten

261 Kommentare

13 Nutzer