Namespace trong C# là kỹ thuật phân hoạch không gian các định danh, các kiểu dữ liệu thành những vùng dễ quản lý hơn, nhằm tránh sự xung đột giữa việc sử dụng các thư viện khác nhau từ các nhà cung cấp. Ví dụ khi bạn tạo một lớp trong một namespace nào đó, bạn không cần phải kiểm tra xem nó có bị trùng tên với một lớp nào đó trong namespace khác không.
Ngoài thư viện namespace do Microsoft .NET và các hãng thứ ba cung cấp, ta có thể tạo riêng cho mình các namespace.
Để tạo một namespace sử dụng cú pháp sau:
namespace KhôngGianTên
{
//Định nghĩa lớp A
//Định nghĩa lớp B…
}
Ví dụ:
using System;
namespace MyLib
{
namespace Demo1
{
class Example1
{
public static void Show1()
{
Console.WriteLine("Lop Example1");
}
}
}
namespace Demo2
{
public class Tester
{
public static void Main()
{
Demo1.Example1.Show1();
Demo1.Example2.Show2();
}
}
}
}
Lớp Example2 có cùng namespace MyLib.Demo1 với lớp Example1 nhưng hai khai báo không cùng một tập tin
namespace MyLib.Demo1
{
class Example2
{
public static void Show2()
{
Console.WriteLine("Lop Example2");
}
}
}
C# đưa ra từ khóa using để khai báokhông gian tên cho việc sử dụng các định danh, kiểu dữ liệu định nghĩa thuộc không gian têntrong chương trình:
using KhôngGianTên;
Thay vì sử dụng lệnh using, có thể sử dụng dấu chấm truy cập namespace.
Ví dụ: using System;
cho phép ta sử dụng Console.WriteLine() thay cho System.Console.WriteLine()
Ví dụ: using Demo1;
cho phép ta truy cập Example1.Show1() thay cho Demo1.Example1.Show1();
using cũng có thể cung cấp một không gian tên bí danh
Ví dụ:using Utils = Company.Application.Utilities;
Từ khóa using được sử dụng với hai ý nghĩa hoàn toàn không liên quan. Ngoài việc sử dụng như một khai báo không gian tên cho việc tham chiếu, từ khóa using còn được sử dụng để tự động gọi phương thức Dispose() cho đối tượng cụ thể.
Ví dụ: Sau khi đọc tập tin, đối tượng reader sẽ được tự động hủy
using (StreamReader reader = new StreamReader("vb.txt"))
{
//Đọc tập tin
}
Ví dụ:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
using (StreamReader reader = new StreamReader("vb.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
Console.WriteLine(line);
}
}
}
» Tin mới nhất:
» Các tin khác: