Namespace trong C#

Trong C#, namespace được thiết kế để giữ một tập hợp các tên được phân biệt riêng rẽ nhau. Các tên lớp giống nhau nhưng được khai báo ở các namespace khác nhau thì không xung đột với nhau.

Định nghĩa một Namespace trong C#

Một định nghĩa namespace trong C# bắt đầu với từ khóa namespace được theo sau bởi tên của namespace đó, như sau:

namespace tên_namespace {
   //phần khai báo code
}

Để gọi phiên bản đã kích hoạt của namespace của hàm hoặc biến, bạn thêm vào sau tên của namespace đó như sau:

tên_namespace.tên_phn_tử;

Ví dụ sau minh họa cách sử dụng của các namespace trong C#:

using System;

namespace namespaceA {
   class namespace_l {
      public void InNamespace() {
         Console.WriteLine("Đây là namespaceA");
      }
   }
}
namespace namespaceB {
   class namespace_l {
      public void InNamespace() {
         Console.WriteLine("Đây là namespaceB");
      }
   }
}
class Tester {
   static void Main(string[] args) {
      namespaceA.namespace_l ns1 = new namespaceA.namespace_l();
      namespaceB.namespace_l ns2 = new namespaceB.namespace_l();
Console.WriteLine ("Học C# cơ bản trên Quantrimang.com.");
Console.WriteLine ("Ví dụ về Namespace trong C#:");
Console.WriteLine ("-----------------------------------"); ns1
.InNamespace(); ns2.InNamespace(); Console.ReadKey(); } }

Chạy chương trình bên trên ta sẽ có kết quả sau:

Học C# cơ bản trên Quantrimang.com.
Ví dụ về Namespace trong C#:
-----------------------------------
Đây là namespaceA
Đây là namespaceB

Từ khóa using trong C#

Từ khóa using cho biết rằng chương trình đang sử dụng các tên trong namespace đã cho. Ví dụ: chúng ta sử dụng namespace System trong các chương trình. Lớp Console được định nghĩa ở đây. Chúng ta viết:

Console.WriteLine ("Chuyên mục C# Quantrimang.com.");

Hoặc có thể viết tên đầy đủ là:

System.Console.WriteLine("Chuyên mục C# Quantrimang.com.");

Nhờ sử dụng using, bạn sẽ tránh được việc phải thêm namespace trước tên lớp. Using này nói cho trình biên dịch rằng phần code tiếp theo đang sử dụng các tên trong namespace đã xác định.

Giờ viết lại ví dụ trên bởi sử dụng using directive trong C#:

using System;
using namespaceA;
using namespaceB; namespace namespaceA { class namespace_l { public void InNamespace() { Console.WriteLine("Đây là namespaceA"); } } } namespace namespaceB { class namespace_2 { public void InNamespace() { Console.WriteLine("Đây là namespaceB"); } } } class Tester { static void Main(string[] args) { namespaceA.namespace_l ns1 = new namespaceA.namespace_l(); namespaceB.namespace_2 ns2 = new namespaceB.namespace_2();
Console.WriteLine ("Học C# cơ bản trên Quantrimang.com.");
Console.WriteLine ("Ví dụ về Namespace trong C#:");
Console.WriteLine ("-----------------------------------"); ns1
.InNamespace(); ns2.InNamespace(); Console.ReadKey(); } }

Kết quả khi chạy chương trình này vẫn như trên, chỉ khác là bạn không phải thêm tên namespace vào trước tên lớp.

Namespace lồng nhau trong C#

Trong C#, bạn có thể định nghĩa một namespace bên trong các namespace khác, như sau:

namespace tên_namespace_1
{
// phần khai báo code
namespace tên_namespace_2
{
// phần khai báo code
}
}

Bạn có thể truy cập các thành viên của các namespace lồng nhau này bằng cách sử dụng toán tử dấu chấm (.) trong C#, như sau:

using System;
using namespaceA;
using namespaceA.namespaceB; namespace namespaceA { class namespace_l { public void InNamespace() { Console.WriteLine("Đây là namespaceA"); } } namespace namespaceB { class namespace_2 { public void InNamespace() { Console.WriteLine("Đây là namespaceB"); } }
} } class Tester { static void Main(string[] args) { namespace_l ns1 = new namespace_l(); namespace_2 ns2 = new namespace_2();
Console.WriteLine ("Học C# cơ bản trên Quantrimang.com.");
Console.WriteLine ("Ví dụ về Namespace trong C#:");
Console.WriteLine ("-----------------------------------"); ns1
.InNamespace(); ns2.InNamespace(); Console.ReadKey(); } }

Kết quả sau khi chạy code sẽ giống như 2 code bên trên.

Theo Tutorialspoint

Bài trước: Interface trong C#

Bài tiếp: Chỉ thị tiền xử lý trong C#

Thứ Hai, 23/07/2018 18:59
3,45 👨 6.090
0 Bình luận
Sắp xếp theo
    ❖ Lập trình C#