namespace trong c#

Namespace trong C#

Mở đầu

Khi làm việc, ta cũng sẽ bắt gặp rất nhiều từ khóa namespace, từ viết chương trình đơn giản tới phức tạp, viết class, hay làm bất cứ việc gì liên quan tới C# ta đều ít nhiều bắt gặp từ khóa này. Vậy trong bài viết này chúng ta cùng tìm hiểu từ khóa namespace là gì nhé !

Namespace trong C# là gì ?

Định nghĩa

Theo Microsoftnamespace đượ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 giống nhau khi được đặt ở các namespace khác nhau sẽ không xung đột với nhau.

Tại sao lại cần tới namespace ?

Trong lập trình, khi chương trình lớn có nhiều tính năng thì ở mỗi tính năng có thể sẽ có các phương thức trùng tên nhau nhưng lại hoạt động khác nhau và 2 tính năng đó là độc lập thì cần phân ra mỗi namespace cho mỗi tính năng. Tương tự như Mỹ và Italia đều có 2 thành phố là Venice vậy nên chúng ta phải xác định thêm tên quốc gia để có thể biết 2 thành phố Venice này là khác nhau, namespace cũng như thế (xem hình minh họa dưới đây).

namespace trong c#

ảnh minh họa: Devmaster

Khai báo

Để định nghĩa một namespace trong C# ta bắt đầu với từ khóa namespace trước rồi tới tên namespace. Sau đây là ví dụ đơn giản nhất về chương trình Hello, World:

Chương trình này sẽ xuất ra dòng chữ Hello, world !, qua chương trình có thể thấy, chúng ta đã khai báo một namespace tên là luyencodec_ và bên trong có chứa class Program. Đây là chương trình cơ bản sau khi tạo một project C# nằm trong file Program.cs.

Như vậy rút ra từ chương trình ví dụ, ta có thể dễ dàng nhận ra được cấu trúc để khai báo một namespace trong C#:

Khai báo namespace lồng nhau

Tương tự như các cấu trúc có thể lồng nhau namespace cũng có thể làm tương tự như vậy. Dưới đây là ví dụ về cấu trúc namespace lồng nhau:

Để truy cập vào các namespace con ở trong các namespace cha, ta gọi từ các namespace cha lần lượt vào trong. Ví dụ, để gọi vào namespaceD ở trên:

 

Cách sử dụng một namespace

Ở phần trước của bài chúng ta đã rút ra được từ chương trình được tạo sẵn sau khi tạo một project C#, namespace này sẽ tự động được gọi khi chương trình thực thi. Nhưng giờ các bạn có nhiều namespace khác nhau và muốn gọi chúng khi sử dụng thì sao ?

Để gọi một namespace đã được định nghĩa ta sử dụng như sau:

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

Chương trình này sau khi chạy sẽ cho ra kết quả như sau:

Như vậy, chúng ta có thể khai báo và sử dụng 2 class bị trùng tên là Meo thông qua 2 namespace là con_meo và dong_vat mà không bị xung đột.

Sử dụng namespace với từ khóa using

Ở phần trước của bài, bạn đã được giới thiệu về cách sử dụng một namespace đã được định nghĩa. Phần này, mình sẽ giới thiệu cho các bạn về từ khóa using cũng là một cách khác để có thể sử dụng namespace đã được định nghĩa.

Ví dụ, chúng ta sử dụng câu lệnh using System; ở mỗi đầu chương trình câu lệnh nhập xuất trong C# ra sử dụng:

hoặc

Như chúng ta có thể thấy, việc khai báo using System; ở đầu chương trình thì chúng ta có thể rút gọn tên namespace System ở mỗi lần sử dụng. Các bạn hãy thử bỏ câu lệnh using System; ở đầu chương trình đi để thấy sự khác biệt nhé.

Tiếp tục, quay trở lại với ví dụ ở phần trên:

Giờ chúng ta hãy khai báo câu lệnh using con_meo; ở đầu chương trình:

Chương trình vẫn sẽ xuất ra:

Như vậy là thông qua 2 ví dụ trên, chúng ta rút ra được cách sử dụng từ khóa using:

Các built-in namespace có sẵn trong C#

Với từ khóa using đã được kể ở trên, bạn có thể sử dụng được các built-in namespace của C# bằng cách khai báo nó ở đầu chương trình, dưới đây là các built-in namespace có sẵn:

  • System
  • System.IO
  • System.Text
  • System.Draw
  • System.Collections.Generic

Những lưu ý khi sử dụng namespace

  • Tên của namespace phải được đặt theo chuẩn quy tắc đặt tên.
  • Nếu như khai báo nhiều namespace thì tên các namespace không được trùng nhau.

Tổng kết

Qua bài viết này mong các bạn sẽ hiểu rõ hơn về thế nào là namespace, cách khai báo và sử dụng namespace trong C#. Tổng kết lại chúng ta có namespace là:

  • Namespace giống như là 1 thùng container chứa trong đó là các định nghĩa, các khai báo, các hàm, biến, cấu trúc… và được xem như là 1 block trong c#. Nhờ việc bao bọc như thế mà ta có thể đóng gói và gom nhóm từng tính năng riêng lẻ của 1 chương trình để phục vụ việc bảo trì và phát triển về sau.

Và đó là tất cả những gì mà các bạn cần biết để có thể hiểu về namespace trong C#. Cảm ơn bạn đã đọc bài viết ! Hãy tiếp tục đồng hành cùng Lập Trình Không Khó trong các bài viết tiếp theo nhé !

Similar Posts

Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments