2009-09-08 34 views
8

Tôi khá thất vọng. Tôi đang sử dụng Delphi 2009 và đã rất hạnh phúc về sự bao gồm của generics trong phiên bản này của Delphi. Mọi thứ đã hoạt động rất tốt ngay từ đầu, nhưng bây giờ tôi sử dụng generics trên khắp nơi mà tôi gặp phải vấn đề sau vấn đề - phần lớn thời gian là một số lỗi nội bộ, nơi tôi thậm chí không thấy chính xác chúng được gây ra ở đâu. Tôi đã cố gắng tái cơ cấu mã nhiều lần để tránh các vấn đề với generics nhưng luôn luôn chạy vào các vấn đề mới tiếp tục xuống dòng.Có phải Generics in D2009 có thể sử dụng trong các dự án lớn không?

Bây giờ tôi quyết định loại bỏ generics alltogether và sử dụng một số phôi động để chuyên lớp của tôi. Không phải là rất vui mừng về nó, nhưng tôi chỉ không nhìn thấy một lựa chọn khác. Tôi không thể dành cả ngày để theo dõi lỗi trình biên dịch nội bộ của Delphi ...

Có ai sử dụng Generics trong một dự án lớn mà không gặp phải vấn đề như vậy không? Có phải lỗi của tôi có lẽ không? Hoặc là nó không thể sử dụng chúng trong các dự án phức tạp?

Tôi hy vọng D2010 sẽ sửa tất cả nội dung này.

+1

Lỗi trình biên dịch nội bộ Ouch ...? Đó chắc chắn là một không lớn cho Delphi. Tôi đã không sử dụng Delphi cho 10 năm hoặc lâu hơn, nhưng những gì bạn đang nói có vẻ khủng khiếp. –

+0

Với sự ra đời của Delphi 2 (một thời gian dài trước đây), đó là phiên bản đầu tiên của Delphi với một trình biên dịch 32-bit, tôi đã có một loạt các lỗi nội bộ quá. Có vẻ như Borland/Inprise/... gặp khó khăn trong việc vận chuyển các tính năng mới được thử nghiệm trong các phiên bản mới của trình biên dịch của họ. – Lucero

+2

Đây không phải là diễn đàn thảo luận. Bạn có câu hỏi lập trình thực sự không? – Argalatyr

Trả lời

12

Tôi đang sử dụng Generics rộng rãi ở Delphi 2009, và tôi có thể nói nó không dễ dàng như bạn thường được yêu cầu để làm việc xung quanh một ICE. Thậm chí tệ hơn, generics thậm chí còn lộn xộn với mối liên kết, tức là bạn không thể thực sự sử dụng chúng trong các gói (ngoại trừ các gói C++ Builder).

Tất cả sự cố này dường như đã biến mất trong Delphi 2010; Tôi hầu như không bao giờ nhìn thấy một ICE do generics. Tôi cần mã của tôi để làm việc với cả hai năm 2009 và 2010 mặc dù: (

7

Hỗ trợ Generics trong D2009 thực sự là xấu lúc đầu. Cập nhật 3 sửa chữa rất nhiều thứ, nhưng không phải tất cả mọi thứ, và để lại ít nhất một lỗi nghiêm trọng trong Generics. Trong một số cách, nó thực sự tồi tệ hơn, vì bây giờ thay vì đưa ra cho bạn một lỗi cú pháp khi trình biên dịch kích hoạt trên một số cấu trúc chung, bạn thường sẽ nhận được một lỗi trình biên dịch nội bộ và bạn không biết nguyên nhân gây ra nó.

Nó đã được cải thiện khá nhiều cho năm 2010. Vẫn còn một số vấn đề liên quan đến generics trong trường hợp khá mơ hồ, nhưng chúng thường an toàn để sử dụng miễn là bạn không sử dụng gói hoặc đưa generics bên trong lớp người giúp việc hoặc những điều kỳ lạ như thế.

Dòng dưới cùng: nếu bạn muốn sử dụng chúng, hãy nâng cấp lên 2010.

Các vấn đề liên quan