Xóa bài viết
Bạn có chắc chắn muốn xóa bài viết này không ?
Xóa bình luận
Bạn có chắc chắn muốn xóa bình luận này không ?
Extension method in C#
Extension method in C#
-
Là gì?
- Mở rộng của 1 class có sẵn nào đó
-
Dùng như nào
- Là thành phần của 1 static method
- Method có ít nhất 1 tham số
- Tham số đầu tiên chính là class sẽ được extend
- Từ khoá this phải thêm vào tham số đầu tiên của extension method.
Cách dùng
public static class ExtentionMethod
{
public static bool IsKipalogAwesome(this string s)
{
return "Kipalog is awesome".Equals(s);
}
public static int MyPow(this int n)
{
return n * n;
}
}
class Program
{
static void Main(string[] args)
{
string s = "Kipalog is awesome";
Console.WriteLine(s.IsKipalogAwesome()); //True
Console.WriteLine(5.MyPow()); // 25
//Console.WriteLine(ExtentionMethod.MyPow(5)); cách gọi khác của MyPow
}
}
Trong ví dụ trên, rõ ràng IsKipalogAwesome
và MyPow
là 2 method của class ExtentionMethod
tuy nhiên lại được gọi qua instance của class string và int. Đây là ý nghĩa chính của extension method. Tuy nhiên, cũng bởi như vậy nên việc sử dụng extension method cũng sẽ gây ra 1 số khó khăn cho việc bảo trì. Dưới đây sẽ là một vài chú ý về cách thức sử dụng kỹ thuật này:
a. Chỉ nên dùng mở rộng cho các lib class
b. Nên đặt tên method rõ ràng và tránh đặt cùng tên các method có sẵn trong lib
c. Nên viết comment rõ ràng
Bình luận

{{ comment.user.name }}
Bỏ hay
Hay

Cùng một tác giả

2
0
Tạo file với nội dung như dưới Path: /etc/systemd/system/dockertcp.socket Unit] Description=Docker Socket for the API Socket] ListenStream=237...

2
0
Laravel and Docker Môi trường hiện có MacOS: 10.12 Laravel: 5.4 MySQL: 5.7 Hiện trạng môi trường hiện có Do từ đầu dùng local để dev nên...

1
1
Vấn đề về bộ nhớ của Com object trong C 1. Vấn đề gặp phải Mình cần viết một tool xử lý vài thứ nằm trong file excel Quái nào C có bộ GC ngon ...
Bài viết liên quan

0
5
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...

4
0
I used Spring boot, Hibernate few times back then at University, I'v started using it again recently. In this (Link), I want to check how Spring J...