Dường như với tôi rằng rất nhiều thời gian gỡ lỗi của tôi được dành để theo đuổi các ngoại lệ tham chiếu null trong các câu lệnh phức tạp. Ví dụ:Tại sao không thể đặt tên ngoại lệ tham chiếu null đối tượng có tham chiếu null?
For Each game As IHomeGame in _GamesToOpen.GetIterator()
Tại sao, khi tôi nhận được NullReferenceException, tôi có thể lấy số dòng trong dấu vết ngăn xếp chứ không phải tên của đối tượng bằng null. Nói cách khác, tại sao:
Object reference not set to an instance of an object.
thay vì
_GamesToOpen is not set to an instance of an object.
hoặc
Anonymous object returned by _GamesToOpen.GetIterator() is null.
hoặc
game was set to null.
Đây có phải là hoàn toàn là một sự lựa chọn thiết kế, có nghĩa là để bảo vệ danh tính của mã hoặc có comp lý do elling trong thiết kế trình biên dịch không bao gồm thông tin này trong ngoại lệ thời gian gỡ lỗi?
Số dòng cũng là một điều thời gian chạy. Trình biên dịch gỡ lỗi có chứa tất cả các loại thời gian biên dịch (tên lớp và phương thức, số dòng, v.v.) Tại sao không phải là tên biến? –
Các lớp và phương pháp và tên tham số thực sự tồn tại ở cấp IL. Nhưng các biến được sử dụng khá nhiều trong IL được tạo ra. Về cơ bản, không có cách cụ thể nào để liên kết một ngoại lệ với một biến cụ thể: Giả sử "if (a
Được chấp nhận vì nhận xét ở trên. –