Có thể kiểm tra từng loại biến để xem giá trị hoặc tham chiếu thực tế không?
Chỉ cần làm rõ, các giá trị của một biến tham khảo loạilà một tham chiếu. Tham chiếu là giá trị.
Tham chiếu là một loại giá trị, giống như một int là một loại giá trị. Không giống như int, tham chiếu là giá trị chỉ có thể là được sao chép và bị hủy đăng ký; bạn không thể quan sát giá trị của nó trực tiếp trong C#, bởi vì giá trị của nó là một chi tiết thực hiện của bộ thu gom rác.
Tham chiếu có được lưu trữ như một loại giá trị được mã hóa không?
Có, chính xác. Trong thực tế, một tham chiếu là một số nguyên 32 hoặc 64 bit (tùy thuộc vào việc bạn đang trong quá trình 32 hay 64 bit) đó là một con trỏ tới một cấu trúc nào đó được biết đến với bộ gom rác như được liên kết với dữ liệu của đối tượng được gọi đến .
Nếu bạn muốn xem trực tiếp tài liệu tham khảo, công cụ để làm như vậy là trình gỡ lỗi. Tải mã C# của bạn vào trình gỡ lỗi, biên dịch nó, chạy nó, nhấn một điểm ngắt và xem trạng thái của ngăn xếp và thanh ghi. Với một chút thông minh, bạn sẽ có thể tìm ra vị trí ngăn xếp và sổ đăng ký tương ứng với biến cục bộ nào. Các vị trí tương ứng với biến cục bộ của loại giá trị sẽ chứa các giá trị; các loại tham chiếu sẽ chứa các giá trị giống như con trỏ. Nếu bạn kiểm tra các con trỏ đó trong cửa sổ bộ nhớ, thì bạn sẽ xem xét các cấu trúc được duy trì bởi bộ thu gom rác mô tả nội dung của đối tượng.
Nguồn
2012-01-11 16:53:44
Điều duy nhất bạn sẽ thấy là địa chỉ, một số dường như ngẫu nhiên. Tại sao bạn muốn thấy điều này? – Dykam
Để xi măng ý tưởng rằng trong biến không phải là đối tượng mà họ đặt, mà là một địa chỉ. Làm thế nào chúng ta sẽ truy cập này? –
http://stackoverflow.com/questions/1978232/how-can-i-display-the-actual-value-of-a-reference-in-c-sharp –