C# Cơ bản .NET Core §1) Cài đặt, chương trình C# đầu tiên §2) Biến, kiểu dữ liệu và nhập/xuất §3) Toán tử số học và gán §4) So sánh, logic và lệnh if, switch §5) Vòng lặp for, while §6) Phương thức - Method §7) Phương thức - Delegate §8) Lớp - Class §9) Kiểu vô danh và dynamic §10) Biểu thức lambda §11) Event §12) Hàm hủy - Quá tải toán tử - thành viên tĩnh - indexer §13) Lớp lồng nhau - namespace §14) null và nullable §15) Mảng §16) Chuỗi ký tự §17) Tính kế thừa §18) Tính đa hình - abstract - interface §19) Struct và Enum §20) Ngoại lệ Exeption §21) IDisposable - using §22) File cơ bản §23) FileStream §24) Generic §25) Collection - List §26) SortedList §27) Queue / Stack §28) Linkedlist §29) Dictionary - HashSet §30) Phương thức mở rộng §31) ObservableCollection §32) LINQ §33) (Multithreading) async - bất đồng bộ §34) Type §35) Attribute Annotation §36) DI Dependency Injection §37) (Multithreading) Parallel §38) (Networking) HttpClient §39) (Networking) HttpMessageHandler §40) (Networking) HttpListener §41) (Networking) Tcp TcpListenerr/TcpClient §42) (ADO.NET) SqlConnection §43) (ADO.NET) SqlCommand §44) (EF Core) Tổng quan §45) (EF Core) Tạo Model §46) (EF Core) Fluent API §47) (EF Core) Query §48) (EF Core) Scaffold §49) (EF Core) Migration §50) (ASP.NET CORE) Hello World! §51) (ASP.NET CORE) Middleware §52) (ASP.NET CORE) Map - Request - Response §53) (ASP.NET CORE) IServiceCollection - MapWhen §54) (ASP.NET CORE) Session - ISession §55) (ASP.NET CORE) Configuration §56) (ASP.NET CORE MVC) Controller - View

Khai báo lambda C#

Biểu thức lambda còn gọi là biểu thức hàm nặc danh (Anonymous), một biểu thức khai báo giống phương thức (hàm) nhưng thiếu tên. Cú pháp để khai báo biểu thức lambda là sử dụng toán dử => như sau:

(các_tham_số) => biểu_thức;

Thậm chí là cả một cấu trúc lệnh sau toán tử =>

(các_tham_số) =>
{
   // các câu lệnh
    // Sử dụng return nếu có giá trị trả về
}

Các biểu thức lambda đều có thể chuyển đổi thành delegate, do vậy nó có thể gán cho các delegate phù hợp - (bạn cần biết cách sử dụng delegate trước).

Sử dụng lambda C#

Ví dụ, đây là một biểu thức lambda, nó tính tổng của hai số nguyên

(int x, int y) => {
    return x + y;
};

Có thể gán biểu thức này cho biến delegate. Ví dụ:

using System;

namespace CS09_Anonymous_lambda
{
    class Program
    {
        public delegate int TinhToan(int a, int b);
        static void Main(string[] args)
        {
            // Gán biểu thức lambda cho delegate
            TinhToan tinhtong = (int x, int y) => {
                return x + y;
            };

            int kq = tinhtong(5,1);  // kq = 6;
        }
    }
}

Như phần trình bày về Delegate, có thể gán biểu thức lambda có kết quả trả về cho Func hoặc biểu thức không có kết quả trả về cho Action

using System;

namespace CS09_Anonymous_lambda
{
    class Program
    {
        static void Main(string[] args)
        {
            //Gán lambda cho Func
            Func<int,int,int> tinhtong = (int x, int y) => {
                return x + y;
            };
            // Gán lambda cho Action
            Action<int> thongbao =  (int vl) => {
                Console.WriteLine(vl);
            };


            int kq1 = tinhtong(5,3);     // kq1 = 8
            int kq2 = tinhtong(5,5);     // kq2 = 10
            thongbao(kq1);               // In ra: 8
            thongbao(kq2);               // In ra: 10
        }
    }
}

Định nghĩa phương thức với lambda

Bạn có thể sử dụng toán tử => sau khai báo tên phương thức (loại phương thức có kiểu trả về khác void) của lớp, rồi đến ngay một biểu thức có kết quả trả về (không dùng {}), biểu thức này như là định nghĩ thân của phương thức.

Ví dụ, khai báo phương thức:

int Tong(int x, int y) => x + y;

Nó tương đương với dạng đầy đủ đã biết

int Tong(int x, int y)
{
    return x + y;
}
Lambda code Exam
Đăng ký theo dõi ủng hộ kênh