2009-04-20 37 views
15

Có cách nào để sử dụng không gian tên và sau đó có tự động sử dụng tất cả các không gian tên phụ không?Không gian tên và không gian tên phụ

Ví dụ:

namespace Root.Account 
{ 
//code goes here 
} 

namespace Root.Orders 
{ 
//code goes here 
} 


//New File: 
using Root; 

Để cho tôi để sử dụng các mã trong Root.Account, tôi sẽ cần phải thêm bằng Root.Account để mã của tôi.

Tôi muốn có thể chỉ nói bằng cách sử dụng Root và yêu cầu nhận bất kỳ lớp không gian tên phụ nào để sử dụng.

Nếu điều này có ý nghĩa, điều này có khả thi không?

Cảm ơn

+0

Bạn đang thực sự cố gắng đạt được điều gì? –

Trả lời

22

Không, không có cách nào hoạt động theo cách đó xuống cây. Tuy nhiên, bạn không cần phải bao gồm sử dụng chỉ thị để đi lên cây. Nói cách khác, nếu bạn sử dụng:

namespace Root.Orders 
{ 
    // Code 
} 

thì mọi loại trong Root đều đã hiển thị.

+3

Được rồi, điều này thật thú vị. Vì vậy, hãy nói rằng tôi đã có một không gian tên Root.Orders.OrderItems và tôi sử dụng điều này trong các chỉ thị của tôi, tôi sẽ có thể sử dụng bất kỳ lớp học trong Root và Root.Orders? – CodeLikeBeaker

+2

Không - nó chỉ là các không gian tên đang mở rộng phân cấp của không gian tên thuộc loại của bạn được tìm kiếm. Nói cách khác, đó là chỉ thị không gian tên có "tính năng" này, không phải chỉ thị sử dụng. –

1

Không, không thực sự. =)

+0

Vâng, tôi nghĩ rằng tôi sẽ cố gắng :) cảm ơn! – CodeLikeBeaker

0

.NET/C# không hỗ trợ dạng không gian tên này bằng cách sử dụng.

9

Không, using chỉ thị trong C# does not allow này:

Tạo một chỉ thị sử dụng để sử dụng các loại trong một không gian tên mà không cần phải xác định không gian tên. Chỉ thị sử dụng không cung cấp cho bạn quyền truy cập vào bất kỳ vùng tên nào được lồng trong không gian tên mà bạn chỉ định.

VB.NET, tuy nhiên, supports hành vi hơi gần gũi hơn với Imports tuyên bố:

Phạm vi của các yếu tố tạo sẵn bởi một tuyên bố nhập khẩu phụ thuộc vào cách cụ thể mà bạn là khi sử dụng câu lệnh Imports. Ví dụ, nếu chỉ có một không gian tên được chỉ định, tất cả các thành viên được đặt tên duy nhất của không gian tên đó và các thành viên của các mô-đun trong không gian tên đó, đều có sẵn mà không có trình độ chuyên môn. Nếu cả hai không gian tên và tên của một phần tử của không gian tên đó được chỉ định, thì chỉ các thành viên của phần tử đó có sẵn mà không có đủ điều kiện.

Nghĩa là, nếu bạn nói

Imports Root 

sau đó bạn sẽ có thể để chỉ nói Orders.Whatever.

1

Từ cách bạn đã nêu câu hỏi ban đầu, có vẻ như bạn có thể hoặc không thể nhận ra rằng từ chỉ sử dụng:

using Root; 

Cách bạn làm rõ mã của bạn sau này là:

Account.Class obj = new Account.Class(); 
Orders.Class obj = new Orders.Class(); 

Bạn không cần phải sử dụng Root.Account để truy cập mã và giống với Root.Orders. Ngoài ra, không có cách nào để tự động đệ quy sử dụng không gian tên. Tôi nghĩ rằng điều này sẽ dẫn đến lạm dụng với việc sử dụng Hệ thống;

-1

không gian tên như vùng chứa đối tượng. Chúng có thể chứa công đoàn, cấu trúc, các lớp, đại biểu và giao diện. Tầm quan trọng chính của không gian tên trong Asp.net C# là để tạo ra một tổ chức gian hàng của chương trình.

tìm hiểu thêm về blog ... http://asp-net-by-parijat.blogspot.in/2015/08/what-is-namespace-in-c-need-of.html

+2

Bạn đã cung cấp câu trả lời cho câu hỏi đã được trả lời 6 năm trước. Điều này không hữu ích. – CodeLikeBeaker

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