Sử dụng Generics trong C#

Generics trong C# là gì, khi nào ứng dụng Generics trong C#

Generics trong c# là gì ?

Tôi là lập trình viên 15 năm với C#, tôi nhận thấy Generics là 1 cái gì đó nữa vời, mà khi làm phần mềm thực tế tôi sẽ không ứng dụng nó, nhưng tôi phải hiểu nó.

Khi bạn làm 1 phần mềm quản lý tầm nhõ, thì không cần ứng dụng Generics cũng không sao !, theo tôi thì Generics dùng cho các phần mềm hệ thống lớn.

Trước tiên các bạn hãy xem 1 ví dụ tôi đã code

namespace Generics
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // chưa sử dụng Generics
            CL1 cl1 = new CL1();
            cl1.Xem(6);

            // có sử dụng Generics
            // sử dụng Generics có kiểu string
            CL2<string> cl2_01 = new CL2<string>();
            cl2_01.Xem("Xin chào tôi đang dùng kiểu string");
           // sử dụng Generics có kiểu double
            CL2<Double> cl2_02 = new CL2<Double>();
            cl2_02.Xem(1290.90);

            Console.ReadLine();
        }
    }
    class CL1
    {
        public void Xem(int so)
        {
            Console.WriteLine("Ket qua: "+so);
        }
    }
    class CL2<KIEU>
    {
        // KIEU có thể đổi lại 1 chữ bất kỳ, miễn sao bạn dễ nhớ, thường dùng T cho gọn
        public void Xem(KIEU so)
        {
            Console.WriteLine("Ket qua: " + so);
        }
    }
}
 

 Qua ví dụ code C# Generics trên ta cấn chú ý 1 vài điểm
Thông thường khi khai báo class thì class CL1 , nhưng hôm nay lại ngược tí ông C# ổng làm kiểu chi lạ
lại có từ khóa <...> phía sau CL2<KIEU>
* Như vậy <KIEU> như 1 tham số về kiểu dữ liệu.

Thông thường khi new 1 class thì: CL1 cl1 = new CL1();
Nhưng hôm nay lạ quá:
 CL2<string> cl2_01 = new CL2<string>();
CL2<Double> cl2_02 = new CL2<Double>();

Tóm lại: khi viết code 1 phương thức ta chưa xác định định được kiểu hay sử dụng kiểu tùy biến thì hãy thêm <XXXXX>  XXXXX là kiểu.