String typ referencyjny ?

0

Hej jak by ktoś mógł wyjaśnić dlaczego typ referencyjny string po wskazaniu a =b nie pokazują na tą samą wartość? Innymi słowy dlaczego wynik programu jest:
Trzeci
Drugi

a nie:
Trzeci
Trzeci.

???

        string a;
        string b;
        a = "Pierwszy";
        b = "Drugi";

        a = b;
     
        a = "Trzeci";

        Console.WriteLine(a);
        Console.WriteLine(b);
1

string jest immutable.

Jezeli dodajesz do niego chocby liczbe to powstaje nowy obiekt. Ty nadpisujesz go nowa wartoscia == powstaje nowy obiekt

2

C# to nie C++. Ten kod działa analogicznie do:

char *a;
char *b;
a = "pierwszy";
b = "drugi";
a = b;
a = "trzeci";
puts(a);
puts(b);
0

Dzięki @fasadin

Czyli tym przypisaniem a = "Trzeci; tworzę nowy obiekt , który już nie wskazuje tam gdzie b bo przypisanie a=b traci niejako ważność?

0

@Wibowit: opisal dokladnie co sie dzieje. Zostaje do niego przypisana nowa wartosc wiec zadres zmiennej sie zmienia

0

Dzięki, ju rozumiem : @Wibowit: i @fasadin

1 użytkowników online, w tym zalogowanych: 0, gości: 1