Tôi đã cho đến gần đây đã được ấn tượng rằng hoạt động CDbl(x)
trong VB.NET về cơ bản là một diễn viên (tức là, VB tương đương với (double)x
trong C#); nhưng một phát hiện gần đây đã tiết lộ rằng đây không phải là trường hợp.CDbl đang làm gì?
Nếu tôi có chuỗi này:
Dim s As String = "12345.12345-"
Và tôi làm điều này:
Dim d As Double = CDbl(s)
d
sẽ được thiết lập với giá trị -12345.12345
! Bây giờ, đừng làm cho tôi sai, đây là loại thuận tiện trong kịch bản cụ thể của tôi; nhưng tôi phải thừa nhận rằng tôi bị nhầm lẫn là lý do tại sao hoạt động. Cụ thể, tôi bị nhầm lẫn vì:
Double.Parse
không hoạt động với đầu vào ở trên.Double.TryParse
không hoạt động.Convert.ToDouble
không hoạt động.
Làm thế nào là CDbl
rất thông minh?
Cảm ơn câu trả lời chuyên sâu. Là một lập trình viên VB6 đã chuyển đổi sang .NET, tôi luôn cố gắng làm những điều "cách .NET" thay vì sử dụng cách chức năng vb cũ. Ví dụ: .substring thay vì Trái, Giữa, Phải, .ToLower thay vì LCase, v.v. – Jeremy