Tại sao cần ép kiểu trong c#
Ví dụ 1:
string a = "1";
string b = "4";
string kq = a + b;
Console.WriteLine(kq);
Console.Read();
Qua ví dụ nay ta thấy điều gì ?
Ví dụ 2:
string a = 1;
Tại sao ? sửa lại sao cho đúng ?
Ví dụ 3:
string a = "1";
string b = "4";
string kq = Convert.ToInt16(a) + Convert.ToInt16(b);
Console.WriteLine(kq);
Console.Read();
Chạy có gặp lỗi không ? sửa code lại sao cho đúng ?
Ngoài Convert.ToInt còn hàm gì nữa ?
Ví dụ 4:
object a = 1;
object b = 4;
int kq = (int)a + (int)b;
Console.WriteLine(kq);
Console.Read();
Tại sao phải là object khi ép kiểu dạng (kiểu)biến ?
string a = "1";
string b = "4";
string kq = a + b;
Console.WriteLine(kq); // kết quả là 14
int kq2 = int.Parse(a) + int.Parse(b);
Console.WriteLine(kq2);
// int.Parse sử dụng khi giá trị chắc chắn là string
object c = 2;
object d = 5;
int kq3 = Convert.ToInt16( c ) + Convert.ToInt16(d);
// convert dùng khi giá trị là object , thường sử dụng với controller của winform.
Console.WriteLine(kq3);
string ngay = "28/2/2000";
// cách 1: sử dụng theo quốc gia
CultureInfo myCIintl = new CultureInfo("fr-FR", false);
myCIintl.DateTimeFormat.TimeSeparator = ":";
myCIintl.DateTimeFormat.DateSeparator = "-";
//CultureInfo myCIintl = new CultureInfo("ja-JP");
DateTime ngayHH = DateTime.Now;
// d/m/y
//28/2/2000
DateTime ngay_saukhi_cv = DateTime.Parse(ngay, myCIintl); // sử dụng cách này không ổn định có máy sử dụng dạng thang/ngay/nam
// cách chuyển ngày an toàn hơn
DateTime ngayCD_C2 = new DateTime(int.Parse(ngay.Split('/')[2]), int.Parse(ngay.Split('/')[1]), int.Parse(ngay.Split('/')[0]));
Ép kiểu trong c#