Jak wypisać adres obiektu?

0

Jak w c# wypisać adres obiektu?

Myślałem,że można tak:

console.writeline(this);

I jeszcze jedno pytanie za pomocą jakiej metody mogę wypisać kilka argumentów?

0

Console.WriteLine("{0}{1}...{n}",arg1,arg2 ... argn)

0

lepiej napisz co chcesz osiagnac, na 99% adres obiektu nie jest ci do niczego potrzebny w zarzadzanym srodowisku zwlaszcza ze sprawiasz wrazenie bardzo poczatkujacego.
aby wypisac wiele argumentow mozesz uzyc Console.WriteLine http://www.dotnetperls.com/console-writeline wez sobie przerob jakis kurs c# :)

0

Chcę wyświetlić adres konkretnego obiektu po przez konstruktor w klasie.

0
GCHandle handle = GCHandle.Alloc(obj, GCHandleType.Pinned);
IntPtr ptr = handle.AddrOfPinnedObject();

http://stackoverflow.com/a/4097057

Obiekt musi być "przypięty", bo inaczej GC będzie sobie mogło go bezkarnie przerzucać. I w sumie bez przypięcia nie da się pobrać adresu.

Ale czy próbujesz to zrobić w jakimkolwiek sensownym celu?

2

Chcę wyświetlić adres konkretnego obiektu

Nie jest ci to do niczego potrzebne.
Oczywiście każdy obiekt ma jakiś adres, ale garbage collector może przesuwać obiekty w pamięci więc jakakolwiek wartość wyświetlona może być już nieaktualna w momencie wyświetlania.

Istnieją mechanizmy pozwalające "przypiąć" obiekt, ale służą do wyższych rzeczy niż bezcelowe wyświetlanie adresu ;-)

0
Biały Młot napisał(a):

Chcę wyświetlić adres konkretnego obiektu po przez konstruktor w klasie.
ale po co? nie bez powodu ta informacja jest przed toba ukryta bo po prostu nie ma ona sensu. wyjasnij jaki masz przypadek uzycia.

0

Nie rozumiem Was, człowiek pyta jak coś zrobić i to dość konkretnie -> "Chcę wyświetlić adres obiektu", a Wy przez wszystkie postu oprócz postu Ktosa mu mówicie, że mu to niepotrzebne i tyle.
Może nawet mu to niepotrzebne, ale zapytał o konkretną rzecz to powinien dostać konkretną odpowiedź, co sobie tam potem z tym zrobi to jego sprawa.

0

Może nawet mu to niepotrzebne, ale zapytał o konkretną rzecz to powinien dostać konkretną odpowiedź

Pytający dostał odpowiedź. W C# nie można ot tak po prostu pobrać adresu obiektu, ze względu na garbage collector, który te adresy może sobie przesuwać. Taka specyfika platformy.

Można powiedzieć, że obiekty nie mają stałego adresu w pamięci.

Są na to "sposoby", ale to musielibyśmy wiedzieć do czego to pytającemu służy. Jeśli do niczego, a tylko chce sobie wyświetlić fajne cyferki, to niech sobie po prostu wyświetli cyferki.

0
Wybitny Kot2 napisał(a):

Nie rozumiem Was, człowiek pyta jak coś zrobić i to dość konkretnie -> "Chcę wyświetlić adres obiektu", a Wy przez wszystkie postu oprócz postu Ktosa mu mówicie, że mu to niepotrzebne i tyle.
Może nawet mu to niepotrzebne, ale zapytał o konkretną rzecz to powinien dostać konkretną odpowiedź, co sobie tam potem z tym zrobi to jego sprawa.

ale tu nie chodzi o to ze ktos mu broni wiedzy tajemnej, to po prostu nie ma sensu i nie ma na to dobrej odpowiedzi. to tak jakby sie spytal jak sie uczy kota szczekac :)

do autora - zrob memory dumpa i otworz w windbg, turorial do znalezienia w sieci :)

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