tôi tò mò về những gì xảy ra với đoạn mã này trong Delphi 2010:phụ UnicodeString để WideString trong Delphi
function foo: WideString;
var
myUnicodeString: UnicodeString;
begin
for i:=1 to 1000 do
begin
myUnicodeString := ... something ...;
result := result + myUnicodeString; // This is where I'm interested
end;
end;
Có bao nhiêu chuỗi chuyển đổi có liên quan, và bất kỳ đặc biệt xấu hiệu suất-khôn ngoan?
Tôi biết chức năng này chỉ cần trả về một thay vì UnicodeString
, nhưng tôi đã thấy mẫu chống này trong mã phát trực tiếp VCL và muốn hiểu quy trình.
Bạn có cố gắng tìm kiếm điều đó trong cửa sổ CPU của trình gỡ lỗi không? – OnTheFly
@OnTheFly: Nó thực sự là một phần của một dự án C++ Builder, và vì một số lý do BCB2010 không thích thiết lập các điểm ngắt trong mã VCL ... Tôi sẽ cố gắng bước qua một số chi tiết. – Roddy
Nếu bạn không có Delphi để nghiên cứu mã được tạo cho tescase của bạn, tôi có thể đăng một disassembly, nhưng tôi thực sự không chắc chắn làm thế nào để trình bày nó ở dạng hữu ích ... – OnTheFly