Tôi biết rằng các chức năng ẩn danh không được hỗ trợ làm đối số cho cuộc gọi phương thức động. Những hạn chế khác của DLR trong .NET 4.0 là gì?Những hạn chế của Thời gian chạy ngôn ngữ động trong .NET 4.0 là gì?
6
A
Trả lời
11
Bạn thể sử dụng chức năng ẩn danh, bạn chỉ phải quăng đầu tiên:
dynamic list = new List<string>() { "10", "20" };
dynamic converted = list.ConvertAll((Func<string, int>) (x => int.Parse(x)));
Điều này cũng đúng trong nhóm chuyển đổi phương pháp: hạn chế
foo.Click += (EventHandler) MyClickHandler;
khác tôi đã gặp phải rất đến nay:
- Phương pháp và trình xây dựng tĩnh không thể là động lực c về các loại, nhưng thể phải năng động trong điều kiện của các đối số
- Bạn không thể sử dụng
dynamic
trong một loại chế Bạn không thể sử dụng
dynamic
như một đối số kiểu trong một giao diện cho một khai báo lớp, nhưng bạn có thể sử dụng nó như một đối số kiểu cho một lớp cơ sở, tức làclass Invalid : IEnumerable<dynamic> class Valid : List<dynamic>
phương pháp mở rộng không thể phát hiện tại thời gian thực hiện (nhưng bạn có thể gọi phương thức tĩnh trực tiếp với các đối số động)
- Có lỗi trong 4.0b1 sao cho bạn không thể chuyển đổi từ
dynamic[]
thànhIEnumerable<dynamic>
- điều đó sẽ được khắc phục cho bản phát hành. - Bạn không thể sử dụng
dynamic
như một lớp cơ sở
(Lưu ý rằng đây là những hạn chế của C# 4.0 càng nhiều càng tốt của DLR riêng của mình. Tôi có cảm giác đó là những gì bạn có nghĩa là mặc dù.)
Các vấn đề liên quan
- 1. ngôn ngữ hoàn toàn được suy ra là gì? và hạn chế của ngôn ngữ đó?
- 2. Những hạn chế của Python trên Android là gì?
- 3. Những hạn chế của WebFormsMVP?
- 4. Sử dụng PartCover 2.3 với thời gian chạy .NET 4.0?
- 5. Thay đổi ngôn ngữ cho NSLocalizedString() trong thời gian chạy
- 6. Những hạn chế của Stackless Python là gì?
- 7. Những hạn chế của ORM của Django là gì?
- 8. Những hạn chế của các loại ký tự nguyên thủy trong D là gì?
- 9. Chunker trong chế biến ngôn ngữ tự nhiên là gì?
- 10. Hiệu suất ngôn ngữ .NET động?
- 11. Ngôn ngữ keo là gì?
- 12. Thời gian chạy của SAP Crystal Reports cho .Net 4.0 (64-bit)
- 13. Thời gian chạy hiện đại là gì?
- 14. Dấu thời gian của jQuery Timeago: Cách chọn ngôn ngữ?
- 15. Những hạn chế về suy luận của các loại cao cấp trong Scala là gì?
- 16. Thời gian chạy chế nhạo trong C?
- 17. Thay đổi ngôn ngữ tại thời điểm chạy trong Swing
- 18. Ngôn ngữ đồng thời
- 19. Ngôn ngữ templating là gì?
- 20. Ngôn ngữ ISO là gì?
- 21. Ngôn ngữ M là gì?
- 22. SecurityAction.RequestMinimum đã lỗi thời trong .Net 4.0
- 23. Sự khác nhau giữa Phiên bản và 'Phiên bản thời gian chạy' trong .Net là gì?
- 24. Những khung công tác và ngôn ngữ nào có thời gian phát triển thấp nhất?
- 25. HttpWebRequest chỉ chạy trên .NET 4.0
- 26. Làm thế nào để rơi trở lại nhiều ngôn ngữ trong Django tại thời gian chạy?
- 27. Cách thích hợp để thay đổi ngôn ngữ tại thời gian chạy
- 28. Đo thời gian thực hiện bằng ngôn ngữ D
- 29. Những hạn chế của việc sử dụng tích hợp Spring BlazeDS là gì?
- 30. Thời gian chạy bằng bằng() trong java.util.Arrays là gì?
Tuyệt vời, tốt để có được câu trả lời từ bạn :) – amazedsaint
Không phải tất cả việc sử dụng các đại biểu đều cần diễn viên, không chỉ là anons/lambdas? ví dụ. trong btn.Click + = MyClickHandler; nếu btn là động nhưng có một sự kiện Click, điều đó sẽ không hoạt động. Bạn cần cast xung quanh tên phương thức MyClickHandler. –
@Earwicker: Không * tất cả * sử dụng các đại biểu, nhưng bạn nói đúng rằng các chuyển đổi nhóm phương pháp cũng yêu cầu một diễn viên. Sẽ cập nhật câu trả lời của tôi cho phù hợp. –