Sự thật đơn giản là Func<>
và Action<>
là ý tưởng hay. Chúng làm cho mã của bạn dễ đọc hơn nhiều và chúng tránh được một số lượng lớn các khai báo ủy nhiệm soạn thảo lộn xộn. Đó là lý do tại sao bạn muốn sử dụng chúng.
Vì vậy, bạn có kiểu lập trình hấp dẫn này mà bạn muốn sử dụng, đó là một kỹ thuật tiêu chuẩn hiện nay được sử dụng phổ biến thay cho cách cũ, nhưng bạn không thể sử dụng nó vì bạn đang nhắm mục tiêu phiên bản cũ của khung công tác . Những gì bạn nên làm?
Bạn có ba lựa chọn:
- Sử dụng các phong cách lập trình đó là sử dụng phổ biến trước khi tính năng
- Thêm tính năng mã của riêng bạn trong tinh thần nhưng với phi mâu thuẫn tên
- Thêm tính năng cho mã của riêng bạn với tên "thực" nhưng trong không gian tên của riêng bạn
Sử dụng kiểu lập trình cũ cung cấp tất cả những lợi ích mà chúng tôi đã đánh giá cao từ kỳ tích ure. Đó là một sự hy sinh lớn. Nhưng có lẽ tất cả các đồng phát triển của bạn đều quen với kiểu lập trình này.
Sử dụng tính năng có tên không xung đột có vẻ hợp lý đủ. Mọi người sẽ có thể đọc mã và hưởng lợi từ các tính năng, nhưng không ai sẽ bị nhầm lẫn rằng chúng dường như là một cái gì đó mà họ không. Khi bạn cuối cùng đã sẵn sàng để nâng cấp, bạn sẽ phải vá tên. May mắn là Ctrl + R, Ctrl + R làm việc đó rất dễ dàng.
Sử dụng tính năng có cùng tên với tính năng chuẩn có nghĩa là mã của bạn có thể nhắm mục tiêu phiên bản cũ hơn nhưng có vẻ như đang sử dụng các tính năng mới hơn. Có vẻ như thắng/thắng. Nhưng điều này có thể gây nhầm lẫn và bạn phải cẩn thận rằng các kiểu của bạn không được tiếp xúc với các assembly không rõ ràng khác, có thể gây ra các vấn đề biên dịch ở mức nguồn. Vì vậy, bạn phải cẩn thận và hoàn toàn rõ ràng về những gì đang xảy ra. Nhưng nó có thể hoạt động hiệu quả.
Bạn phải chọn bất kỳ cách tiếp cận nào có ý nghĩa trong tình huống của bạn tùy thuộc vào nhu cầu của bạn. Không có một câu trả lời đúng cho tất cả mọi người, chỉ thương mại-off.
Nguồn
2011-06-28 02:43:09
Nếu bạn đang xây dựng một thư viện nhắm mục tiêu .NET 2.0, hãy thử sử dụng các đại biểu hiện có trong khung khi có thể.Nếu không, hãy tự tạo của riêng bạn nhưng _do not_ trong mọi trường hợp đặt tên cho chúng hoặc tạo các đại biểu "mục đích chung" để phản ánh các đại biểu bạn tìm thấy trong .NET 3.0 trở lên. Điều đó sẽ chỉ dẫn đến sự nhầm lẫn. Các lớp tương thích là không cần thiết vì các đại biểu tương thích có thể chuyển đổi được với nhau. –