Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
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.
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:
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.
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.