Cześć, nie mogę zrozumieć tych netowych wymysłów.
Potrzebuję zrobić coś takiego:
Mam sobie dwa obiekty dwóch różnych klas. A i B.
W obiekcie A tworzę sobie obiekt, który używa obiektu z B:
A.myObj.stream = B.GetStream();
I wszystko byłoby piękne, gdyby nie to, że stream zwracany w metodzie GetStream jest w pewnym momencie niszczony, a potem tworzony z nowymi danymi. W związku z czym zmienia się jego adres i traci się referencja w A.myObj.stream.
Więc wpadłem na świetny pomysł! Posłużę się wskaźnikami. A odkąd właściwie wszystko jest wskaźnikiem, to robota będzie prosta.
//uproszczony kod
private MyStream streamToReturn = null; //próbowałem też ze static
public void myFunc()
{
mainStream.dispose();
mainStream = new MyStream(jakies_parametry)
streamToReturn = mainStream;
}
public MyStream GetStream()
{
return streamToReturn;
}
Spodziewałem się, że obiekt streamToReturn ZAWSZE będzie miał ten sam adres w pamięci, ponieważ nigdy nie jest niszczony. Jednak okazało się, że nie.
Więc wyrywam sobie włosy z głowy. Jak to można zrobić inaczej? Jakoś za pomocą Marshal? Tylko jak?