Tôi thấy here rằng Func<(Of <(T1, T2, T3, T4, TResult>)>) Delegate
là Func
cuối cùng trong không gian tên. Bạn sẽ làm gì nếu cần nhiều hơn 4 tham số?Có các đối tượng Func có nhiều hơn 4 tham số không?
Trả lời
Bạn có thể tạo Func
đại biểu của riêng mình hoặc bạn có thể đợi .NET 4 đến (bao gồm các đại diện được xây dựng trong Func
và Action
có tối đa 16 tham số).
Như những người khác đã đề cập, nếu bạn thấy mình cần một đại biểu có nhiều thông số này thì có lẽ đã đến lúc nghĩ về một số loại tái cấu trúc.
public delegate TResult Func<T1, T2, T3, T4, T5, TResult>
(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
public delegate TResult Func<T1, T2, T3, T4, T5, T6, TResult>
(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, TResult>
(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult>
(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);
// etc
Sách phải đọc __CODE complete__ đề xuất tối đa 7 tham số. :-) –
Tôi nghĩ Steve McConnell phải có một màn hình rất lớn để đọc chữ ký của phương thức;) Đồng ý hết lòng RE: Phải đọc. –
Trong Net 4, có quá tải đến 17 (cho hoặc mất) các thông số.
Cá nhân, tôi nghĩ đó là các loại hạt. Nếu bạn cần nhiều hơn 4 tham số, thì đã đến lúc tạo một lớp mới có tất cả các tham số bạn cần làm thuộc tính.
Tôi tìm thấy nó một chút vô lý mà bạn cho rằng đó là "hạt". Ngay cả một trong những hoạt động cơ bản nhất, 'Array.Copy' có 5 tham số, cũng như các tham số' String.Compare' (** 7 **) và trong rất nhiều hàm có đầu vào item/offset/count và như vậy. – Mehrdad
- 1. void Func không có đối số
- 2. Đối số lvalue có thích tham số tham chiếu lvalue hơn tham chiếu chung không?
- 3. Rails 4 - Tham số mạnh - Đối tượng lồng nhau
- 4. SQL Trong khoản có không đối với nhiều tham số
- 5. Có thể có một hashmap với 4 đối tượng không?
- 6. Có thể lấy số tham chiếu đối tượng không?
- 7. Có sử dụng boost :: bind để chuyển nhiều đối số hơn dự kiến an toàn không?
- 8. Có tốt hơn khi tạo các phương thức với một danh sách dài các tham số hoặc bọc các tham số vào một đối tượng không?
- 9. Gán phương thức với các giá trị mặc định cho Func <> mà không có các tham số đó?
- 10. Tôi có thể sử dụng các tham số trong Hành động hoặc Func đại biểu không?
- 11. C#: Tạo tham chiếu mạnh mẽ giữa các đối tượng, không có tham chiếu đến các đối tượng khác
- 12. Tại sao Java có thể lấy nhiều tham số nhưng chỉ có thể trả về một đối tượng?
- 13. Javascript - có xấu khi vượt qua nhiều đối số hơn hàm khai báo không?
- 14. có thể tham số phương thức truyền đối tượng theo tham chiếu nhưng chỉ đọc không?
- 15. Python - Tốt hơn để có nhiều phương pháp hoặc nhiều tham số tùy chọn?
- 16. in_array trên các đối tượng có tham chiếu vòng tròn
- 17. System.MissingMethodException: Không có hàm tạo tham số nào được định nghĩa cho đối tượng này. MVC4
- 18. Có thể chỉ định nhiều hơn một gợi ý loại cho một tham số không?
- 19. Ánh xạ các tham số URI vào các thuộc tính của đối tượng tham số?
- 20. Tại sao các đối số biểu thức lambda không rõ ràng giữa Func và Biểu thức <Func>?
- 21. Các đối tượng Hibernate không có các bảng cơ bản
- 22. Xóa các đối tượng có số đếm nhỏ hơn ngưỡng trong bộ đếm.
- 23. Tham chiếu đối tượng có chiếm thêm bộ nhớ không?
- 24. Thư viện song song .NET 4 Task có sử dụng các đối tượng COM không?
- 25. Chỉ lắp một tham số của một hàm có nhiều tham số trong python
- 26. Làm thế nào để số nhiều "Có/là N đối tượng/đối tượng"?
- 27. Truyền một đối tượng có kiểu không xác định làm tham số trong phương thức Java
- 28. Có an toàn khi gọi hàm C với nhiều đối số hơn dự kiến không?
- 29. Có OK để có các đối tượng singleton DAO không?
- 30. Các tham số đối với CGPathAddCurveToPoint có nghĩa là gì?
.Net 4 sẽ cho phép số không giới hạn? Nhân tiện, bạn có thể đăng một ví dụ cho các đại biểu 'Func' mà bạn đang nói đến không? – Geo
Không, không phải số không giới hạn. Bạn có thể có tối đa 16 tham số –
Tái cấu trúc? Không, quá sớm. Ngay cả 'String.Compare' có 7 tham số. – Mehrdad