Cấp bậc tác giả:

DOTNET

Cách mở rộng các phương thức trong C#

Được viết bởi webmaster ngày 12/04/2016 lúc 01:12 PM
Các phương thức mở rộng phổ biến nhất hiện nay là LINQ thêm chức năng truy vấn System.Collections.IEnumerable và kiểu System.Collections.Generic.IEnumerable. Để sử dụng các toán tử truy vấn chuẩn, đầu tiên using System.Linq. Sau đó, nhập để thực thi IEnumerable xuất hiện giống như GroupBy , OrderBy , Average.
  • 0
  • 7180

Cách mở rộng các phương thức trong C#


Phương thức mở rộng phổ biến nhất hiện nay là LINQ thêm chức năng truy vấn System.Collections.IEnumerable và kiểu System.Collections.Generic.IEnumerable<T>. Để sử dụng các toán tử truy vấn chuẩn, đầu tiên using System.Linq. Sau đó, nhập để thực thi IEnumerable<T> xuất hiện giống như GroupBy <TSource, TKey>, OrderBy <TSource, TKey>, Average. 

Ví dụ sau đây cho thấy làm thế nào để gọi toán tử truy vấn chuẩn OrderBy trên một mảng các số nguyên. Biểu thức trong ngoặc đơn là biểu thức lambda. Toán tử truy vấn chuẩn lấy biểu thức lambda như thông số, nhưng đây không phải là một yêu cầu đối với phương thức mở rộng.
class ExtensionMethods2    
{

    static void Main()
    {            
        int[] ints = { 10, 45, 15, 39, 21, 26 };
        var result = ints.OrderBy(g => g);
        foreach (var i in result)
        {
            System.Console.Write(i + " ");
        }           
    }        
}
//Output: 10 15 21 26 39 45

Ví dụ sau đây cho thấy một phương thức mở rộng được định nghĩa cho class System.String. Lưu ý rằng nó được định nghĩa bên trong lớp non-nested, non-generic static:
namespace ExtensionMethods
{
    public static class MyExtensions
    {
        public static int WordCount(this String str)
        {
            return str.Split(new char[] { ' ', '.', '?' }, 
                             StringSplitOptions.RemoveEmptyEntries).Length;
        }
    }   
}
Sử dụng mở rộng phương thức WordCount

using ExtensionMethods;
* Lưu ý: Người dùng phải Add Reference vào Project muốn sử dụng.

Và gọi ứng dụng từ cú pháp:

string s = "Hello Extension Methods";
int i = s.WordCount();

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML