2012-02-24 32 views
7

Tôi đến từ một môi trường VB.Net, nơi sử dụng Imports System và sau đó IO.Directory.GetFiles(...) hoạt động.Tại sao tôi không thể viết IO.Directory.GetFiles?

Mặt khác, có vẻ như using System; không đủ để viết sử dụng IO.Directory mà không cần thêm tiền tố với System.. Cách giải quyết duy nhất có vẻ là using IO = System.IO;

Tại sao?


Ví dụ mã:

using System; 
using System.IO; 

namespace Test { 
    class Program { 
     static void Main(string[] args) { 
      System.Console.WriteLine(IO.Directory.GetFiles(System.Environment.CurrentDirectory)[0]); 
     } 
    } 
} 

Edit: Câu hỏi của tôi không phải là những gì tôi nên làm gì để có được mã của tôi làm việc, nhưng đặc biệt "tại sao không thể tôi viết IO.Directory.GetFiles ??"

+0

Chỉ cần nhớ rằng bạn luôn có được một dấu hiệu nhỏ của các không gian tên không được thêm vào của bạn ở dưới cùng bên phải tên lớp khi bạn nhập tên lớp chính xác. Bạn có thể mở rộng nó bằng cách di chuột qua chỉ báo màu đỏ và thực hiện yêu cầu. – nawfal

Trả lời

8

Thêm

using System.IO;

và bạn sẽ có hành vi mà bạn mong đợi. C# không làm cho các không gian tên con có sẵn mà không có chỉ thị sử dụng (hoặc đầy đủ tiêu chuẩn).

+0

+1 Đẹp, chỉ quan tâm có lẽ bạn có bất kỳ tham chiếu đến MSDN về yêu cầu đó nó sẽ là tuyệt vời – sll

+0

Ở đây bạn đi: http://msdn.microsoft.com/en-us/library/0d941h9d.aspx –

+0

Điều này mang lại ' Tên 'IO' không tồn tại trong ngữ cảnh hiện tại' khi tôi viết 'IO.Directory.GetFiles' –

0

Điều bạn đang nói đến không thể có trong C# có thể khác nhau giữa C# và vb.NET.

Nếu bạn đang chuyển đổi mã vb.Net C# hơn tận dụng trang web này sẽ giúp bạn rất nhiều

vb.net to c#

Mã fo Ryou

System.IO.Directory.GetFiles(...) 

hoặc thêm

using System.IO; 

sẽ làm cho bạn

+1

Tôi muốn loại bỏ tiền tố 'Hệ thống'. –

+0

@ Clément, thêm 'using System.IO;' vào bộ sưu tập không gian tên của bạn ở trên cùng! – nawfal

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