Tôi cũng đang trải qua chủ đề 'Biểu thức Lambda' (Chương 17; Đại biểu, C# Đường thực tế cho đại biểu). Jeffery nói rằng biên dịch C# tạo ra một lớp không tĩnh mới trong nền mà có những điều sau đây:Biểu thức Lambda: Hành vi biên dịch
- Fields để lưu trữ tất cả các biến địa phương đã được truy cập trong biểu thức Lambda.
- Phương pháp có thân chứa Biểu thức Lambda và loại chữ ký/trả về khớp với đại biểu mà Lambda Expressin đã được sử dụng.
Tôi có hai câu hỏi sau:
tôi đã làm một chút gỡ lỗi bản thân mình và thấy rằng nếu các biểu thức Lambda thay đổi giá trị của một biến địa phương (được định nghĩa trong một phương thức lambda Expresison đang được được sử dụng trong), giá trị mới được phản ánh bên ngoài phần thân biểu thức. Làm thế nào là điều này có thể xem xét các biểu hiện thực sự là trong một lớp học khác nhau?
Tại sao lớp cần phát ra là không tĩnh khi tương tự có thể được thực hiện bởi lớp tĩnh một cách hoàn hảo?
Tôi hy vọng đây không phải là một khái niệm rất đơn giản mà tôi không thể hiểu được.
Hãy cho tôi biết nếu tôi cần cung cấp thêm chi tiết.
Câu trả lời hay. Cảm ơn. – astraldust
Bạn được chào đón, cổ vũ. – Freeman