CÓ, NÓ LÀM VIỆC! KHÔNG ĐƯỢC ĐỂ KIỂM TRA.
Kể từ NET biên dịch tất cả các ngôn ngữ được quản lý (VB, C#, C++) để IL (Intermediate Language) hướng dẫn và String
loại là một phần của CLS (Common Language Specification) tất cả .NET phiên bản Framework: 2.0, 3.0, 3.5, 4.0 tối ưu hóa kết nối từng phần của quá trình biên dịch String
literals.
Ví dụ mã VB.NET dưới đây:
Dim s As String = "A" & "B" & "C"
tạo ra hướng dẫn IL sau:
L_0008: ldstr "ABC"
Điều này chứng tỏ rõ ràng rằng trình biên dịch là tối ưu hóa String
nối chữ (thử nghiệm trong: Ildasm.exe)
Tuy nhiên, nếu mã trên được viết trong các tuyên bố riêng biệt:
Dim s As String = "A"
s &= "B"
s &= "C"
không tối ưu hóa được thực hiện và String
nối được thực thi tại thời gian chạy (chi phí hoạt động). Tương tự áp dụng cho một dòng lệnh với dữ liệu được giải quyết tại thời gian chạy (biến, thuộc tính, phương thức).
Sử dụng dấu gạch dưới _ để kết nối báo cáo trên vào một câu lệnh để thực thi tối ưu hóa:
Dim s As String = "A" _
& "B" _
& "C" _
và trong trường hợp bạn cần dòng mới giữa thẻ sử dụng vbCrLf
(thời gian biên dịch) liên tục để đảm bảo tối ưu hóa vì sử dụng Environment.NewLine
(thời gian chạy) không cung cấp tối ưu hóa.
Hy vọng điều này sẽ giúp bạn có được lợi thế về hiệu suất!
Nguồn
2010-09-21 13:10:45
bây giờ là cuộc đua để tìm nó trong thông số kỹ thuật. :-) – Larsenal