2010-05-07 29 views
7

Đây là tiêu đề không phù hợp cho câu hỏi, nhưng tôi không chắc chắn về một câu hỏi hay hơn.Xung đột không gian tên và lớp học (?)

Tôi có một không gian tên gọi là Globals với một lớp X trong đó. Tôi cũng có một lớp gọi là Globals. Khi tôi cố gắng truy cập Globals.X.StaticMember nó cố truy cập lớp Globals.X và phàn nàn rằng X không tồn tại. Làm thế nào để tôi tham khảo không gian tên Globals - nghĩa là :: Globals.X.StaticMember (:: không biên dịch).

Trả lời

11

Hãy thử global::Globals.X.StaticMember.

Và Globals là Evil!

+2

+1 cho "Globals là Evil". – OregonGhost

+5

Ngoại trừ các lớp đơn và lớp tĩnh, cả hai đều là bản tổng quát. –

8

Eric Lippert gần đây đã viết blog về nó. Bốn bài đăng trên blog không kém, check it out. Bắt đầu từ phần một.

+0

+1 Đã chuẩn bị liên kết với chính bản thân mình :) – ParmesanCodice

1

Eric Lippert thời gian gần đây đã có một loạt các blogposts mô tả các vấn đề bạn gặp phải khi sử dụng cùng tên cho một lớp và một không gian tên, giải thích tuyên bố này từ Hướng dẫn thiết kế khung trong phần 3.4:

“làm không sử dụng cùng tên cho một không gian tên và một loại trong không gian tên đó ”.

Xem ở đây cho các bài viết khác nhau:

Do not name a class the same as its namespace (Part 1, Part 2, Part 3, Part 4)

Các vấn đề liên quan