Trong các bài học C# trước, Taimienphi.vn đã giới thiệu cho bạn về nạp chồng toán tử (Operator Overloading) trong C# và Interface trong C#. Bài viết tiếp theo dưới đây Taimienphi.vn sẽ giới thiệu tiếp cho bạn về Namespace trong C# là gì?
Namespace được sử dụng để phân nhóm các lớp, giúp chúng ta kiểm soát phạm vi của các phương thức và các lớp trong các dự án lập trình .Net lớn. Cùng tham khảo tiếp bài viết dưới đây của Taimienphi.vn để tìm hiểu chi tiết về Namespace trong C# là gì nhé.
Namespace trong C# là gì?
1. Namespace trong C# là gì?
Có thể hiểu nôm na, Namespace là một cách để phân nhóm tập hợp các tên (chẳng hạn như tên lớp) khác với các tập hợp tên khác. Ưu điểm lớn nhất khi sử dụng Namespace là tên các lớp được khai báo trong namespace này không bị xung đột với tên các lớp khác có cùng tên được khai báo trong namespace khác.
Ngoài ra namespace còn được hiểu là một nhóm các lớp có đặc điểm chung. Các thành viên của namespace có thể là namespace, interface, cấu trúc (structure), và delegate.
2. Định nghĩa Namespace
Để định nghĩa namespace trong C#, chúng ta sẽ sử dụng từ khóa namespace, theo sau là tên của namespace và dấu ngoặc {} chứa phần thân của namespace như dưới đây:
2.1. Cú pháp định nghĩa Namespace
Cú pháp định nghĩa Namespace có dạng như dưới đây:
namespace tên_của_namespace {
// Namespace (Nested Namespaces)
// Classes
// Interfaces
// Structures
// Delegates
}
Ví dụ
Dưới đây là ví dụ về định nghĩa namespace trong C#:
3. Truy cập thành viên của Namespace
Các thành viên của namespace được truy cập bằng cách sử dụng toán tử (.). Một lớp đầy đủ trong C# bao gồm cả namespace tương ứng của nó.
3.1 Cú pháp truy cập thành viên của Namespace
Cú pháp truy cập thành viên của Namespace có dạng: [namespace_tên].[member_tên]
Lưu ý:
- 2 lớp có cùng tên có thể được tạo từ 2 namespace khác nhau trong cùng một chương trình.
- Trong một namespace, không thể có 2 lớp cùng tên.
- Trong C#, tên đầy đủ của lớp bắt đầu từ tên namespace của nó, theo sau là toán tử (.) và tên lớp, được gọi là tên đầy đủ của lớp.
3.2. Ví dụ về truy cập thành viên của Namespace
// C# program to illustrate the
// use of namespaces
// namespace declaration
namespace first {
// name_1 namespace members
// i.e. class
class Taimienphi.vn_1
{
// function of class Taimienphi.vn_1
public static void display()
{
// Here System is the namespace
// under which Console class is defined
// You can avoid writing System with
// the help of "using" keyword discussed
// later in this article
System.Console.WriteLine("Hello Taimienphi.vn!");
}
}
/* Removing comment will give the error
because no two classes can have the
same name under a single namespace
class Taimienphi.vn_1
{
} */
} // ending of first namespace
// Class declaration
class Taimienphi.vn_2
{
// Main Method
public static void Main(String []args)
{
// calling the display method of
// class Geeks_1 by using two dot
// operator as one is use to access
// the class of first namespace and
// another is use to access the
// static method of class Geeks_1.
// Termed as fully qualified name
first.Geeks_1.display();
}
}
Kết quả đầu ra có dạng: Hello Taimienphi.vn!
Trong ví dụ trên:
- Trong System.Console.WriteLine(), "System" là một namespace, trong đó tên lớp là "Console" và phương thức là "WriteLine()".
- Không nhất thiết phải nhóm mỗi lớp trong C# trong namespace riêng, tuy nhiên chúng ta có thể làm điều này để sắp xếp các mã cho phù hợp.
- Ở đây dấu "." là dấu phân cách được sử dụng để tách tên lớp khỏi namespace và tên hàm khỏi tên lớp.
4. Từ khóa Using
Trong thực tế, khi gọi một hàm hoặc một lớp (hoặc các thành viên của namespace) chúng ta không cần sử dụng tền đầy đủ của nó.
Trong ví dụ trên, System.Console.WriteLine("Hello Geeks!"); và first.Geeks_1.display(); là tên đầy đủ. Vì vậy C# cung cấp từ khóa "using" giúp người dùng tránh phải viết đi viết lại tên đầy đủ. Thay vào đó người dùng chỉ cần đề cập đến tên namespace ở phần đầu chương trình.
4.1. Cú pháp
Dưới đây là cú pháp sử dụng từ khóa Using: using [namespace_tên][.][ namespace con_tên];
Trong cú pháp trên, dấu chấm (.) được sử dụng để bao gồm tên namespace con trong chương trình.
4.2. Ví dụ
Dưới đây là một số ví dụ về từ khóa Using trong C#:
- Ví dụ 1:
- Ví dụ 2:
// C# program to illustrate the
// use of using keyword
// predefined namespace
using System;
// user defined namespace
using first;
// namespace declaration
namespace first {
// name_1 namespace members
// i.e. class
class Taimienphi.vn_1
{
// function of class Taimienphi.vn_1
public static void display()
{
// No need to write fully qualified name
// as we have used "using System"
Console.WriteLine("Hello Taimienphi.vn!");
}
}
} // ending of first namespace
// Class declaration
class Taimienphi.vn_2
{
// Main Method
public static void Main(String []args)
{
// calling the display method of
// class Taimienphi.vn_1 by using only one
// dot operator as display is the
// static method of class Taimienphi.vn_1
Taimienphi.vn_1 .display();
}
}
Kết quả đầu ra có dạng:
Hello Taimienphi.vn!
5. Namespace lồng nhau (Nested Namespace)
Ngoài ra bạn có thể định nghĩa một namespace bên trong một namespace khác được gọi là namespace lồng nhau (hay Nested Namespace). Để truy cập các thành viên của namespace lồng nhau, chúng ta sử dụng toán tử (.).
Cho ví dụ, Generic là namespace lồng nhau trong nhóm namespace có dạng System.Collections.Generic.
5.1. Cú pháp namespace lồng nhau
Cú pháp namespace lồng nhau có dạng:
namespace tên_của_namespace_1
{
// khai báo và định nghĩa thành viên
namespace tên_của_namespace_2
{
// khai báo và định nghĩa thành viên
.
.
}
}
5.2. Ví dụ
Dưới đây là ví dụ về namespace lồng nhau:
Kết quả đầu ra có dạng: Nested Namespace Constructor
https://thuthuat.taimienphi.vn/namespace-trong-c-la-gi-43843n.aspx
Bài viết trên đây Taimienphi.vn vừa giới thiệu cho bạn về Namespace trong C# là gì. Ngoài ra bạn đọc có thể tham khảo thêm một số bài viết khác đã có trên Taimienphi.vn để tìm hiểu rõ hơn về Enum trong C# là gì nhé.