Witam. Czy mógłby mi ktoś wytłumaczyć z czego wynika poniżej przedstawiona różnica w zachowaniu struktury i klasy?
Mamy taki kod:
public class A
{
public int X { get; private set; }
public void SetX(int x)
{
X = x;
}
}
public class B
{
public A propA { get; private set; }
public B()
{
propA = new A();
}
}
//dalej w Main:
B testB = new B();
testB.propA.SetX(3);
i teraz wartość właściwości B.propA.X wynosi 3
ale jeśli klasę A zamienimy na strukturę a resztę pozostawimy tak samo to wartości właściwości B.propA.X nie można zmienić - pozostaje domyślna.
I pytanie czemu w tym wypadku zachowanie struktury i klasy się różnią?
I czy można jakoś to obejść inaczej niż ponowna inicjalizacja propA za pomocą konstruktora z parametrem?