Đây là phương thức mở rộng . Xem ở đây để xem explanation.
phương pháp mở rộng cho phép các nhà phát triển thêm các phương pháp mới cho công chúng hợp đồng của một kiểu CLR hiện có, mà không cần phải sub-class hay biên dịch lại kiểu ban đầu. Các phương pháp mở rộng giúp kết hợp tính linh hoạt của tính năng "nhập vịt" hỗ trợ phổ biến trong các ngôn ngữ động hôm nay với hiệu suất biên dịch và biên dịch của các ngôn ngữ được đánh máy mạnh mẽ.
Phương thức mở rộng cho phép nhiều trường hợp hữu ích khác nhau và giúp làm cho khung truy vấn LINQ thực sự mạnh mẽ trở thành .
nó có nghĩa là bạn có thể gọi
MyClass myClass = new MyClass();
int i = myClass.Foo();
hơn
MyClass myClass = new MyClass();
int i = Foo(myClass);
Điều này cho phép việc xây dựng fluent interfaces như được nêu dưới đây.
Nguồn
2009-05-11 05:08:13
Ngoài câu trả lời được chấp nhận, đối với Phương thức mở rộng C#, bạn phải kiểm tra chính thức [tài liệu MSDN] (http://msdn.microsoft.com/en-us/library/bb383977.aspx). –
Phương pháp mở rộng thuận tiện nhưng chúng ta phải thận trọng khi tạo/sử dụng chúng - chúng có thể bị hỏng! Trích dẫn từ Nguyên tắc chung trong [tài liệu MSDN chính thức] (https://msdn.microsoft.com/en-us/library/bb383977.aspx): "Nói chung, chúng tôi khuyên bạn nên triển khai các phương pháp mở rộng một cách tiết kiệm và chỉ khi bạn phải. ... Khi sử dụng một phương pháp mở rộng để mở rộng một loại có mã nguồn mà bạn không thể thay đổi, bạn chạy nguy cơ thay đổi trong việc thực hiện loại sẽ làm cho phương pháp mở rộng của bạn bị hỏng. " –