Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Hỏi về ToString() trong C#

13:40 28-01-2018 7.363 lượt xem 5 bình luận 20:52 29-01-2018

Em thấy có 2 sự khác biệt khi em lập trình Console với Winform học trên HowkTeam ạ.

Giả sử em có một biến

int bien = 10;

Thì khi em muốn in ra Console thì lại không dùng ToString vẫn được, còn gán nó cho 1 button Text thì không được. Em cũng hiểu rằng do kiểu giá trị không giống nhau nên ko gán được, em chỉ thắc mắc tại sao ở Console lại ko cần dùng ToString ạ.

// Ở console ko cần dùng ToString
Console.Write("Giá trị biến = " + bien);

// Set Text cho button lại phải ToString
btnBien.Text = bien.ToString();

Em rất cám ơn anh chị đã đọc.

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Nguyễn Đức Chính đã bình luận 13:51 29-01-2018

Tại sao khi Console Write chúng ta lại không cần phải ToString() cho số 5?

Việc này liên quan đến khái niệm operation trong C#.

Chúng ta có thể tạo ra các operator (vd +, -, *, /, >, <, ..... )

Bạn có thể nhìn ví dụ dưới đây để rõ hơn:

  • "Giá trị biến = " là toán hạng trái (string)
  • + là 1 operator (toán tử 2 ngôi)
  • 5 là toán hạng phải (object)

Kết quả của phép cộng này trả về là string, vì vậy ta có thể hiểu phép cộng operator này .Net sẽ thực hiện nối string bên trái, chuyển số 5 bên phải thành string và nối lại với nhau, trả về 1 string. Vì vậy ta không cần sử dụng phương thức ToString() nữa vì .NET đã chuyển sẵn cho chúng ta rồi.

Long Vo đã bình luận 14:58 28-01-2018

1.Thuộc tính text bình thường là một chuỗi , cho nên khi bạn gán thuộc tính .text bạn phải chuyển nó sang kiểu chuỗi để nó có thể xuất ra được còn nếu khai báo biến int mà gán cho nó mà không cần ToString() thì tất nhiên nó sẽ báo lỗi , và bắt buộc bạn phải ép kiểu hoặc thêm .ToString() vào.
2.Console thì thoải mái , nếu bạn khai báo 1 chuỗi 10 và một kiểu số nguyên 10 , khi xuất ra cũng không có vấn đề gì nó chỉ xuất ra mà không có tính toán ví dụ : chuỗi 10 + số 10 = 1010 ,thay vì đó 2 số nguyên cộng lại sẽ ra một phép toán. vd: 10 + 10 = 20.

Câu hỏi mới nhất