2012-02-15 35 views
8

Có công cụ tái cấu trúc nào để loại bỏ các khối "có" không? Ví dụ chuyển đổiCông cụ để tái cấu trúc "với" khối

with Form1 do 
begin 
    Height := Blah; 
    Blubb := Name; 
end; 

để

Form1.Height := Blah; 
Blubb := Form1.Name; 

nơi Form1 là một VCL TForm. Tối ưu nó sẽ hoạt động với Delphi 2007.

+4

Tôi không nghĩ rằng có điều gì đó như thế này, nó đòi hỏi rất nhiều phân tích mà cần phải đi xuống một decendant TObject trong Để đạt được điều này ... – ComputerSaysNo

+0

Từ thực tế là cả MMX lẫn cấu trúc lại Delphi tích hợp dường như không chứa nó, tôi nhận ra rằng vấn đề có thể khó hơn các phép tái cấu trúc khác. Rất tiếc. :-) –

+2

Là một sidenote: Khó khăn trong việc thực hiện refactoring đó chính xác là lý do tại sao 'with' có thể nguy hiểm! – jpfollenius

Trả lời

10

... Tôi nghĩ rằng Castalia cuối cùng từ Jacob Thurman/TwoDesk Phần mềm làm các trick

12

Một trong số Castalia refactoring tools được đặt tên là "Loại bỏ 'VỚI'".

Tôi không thể nhận xét về hiệu quả hoạt động của nó trong mã không tầm thường vì tôi có xu hướng tránh "bằng".

+1

+1 để tránh "có" (: – ComputerSaysNo

+0

... và vì bạn đã nhanh hơn :) – TLama

+0

+1 tất nhiên. Tôi chấp nhận câu trả lời của User0815 để hỗ trợ SO mới. :-) –

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