Ép kiểu trong c#

Ép kiểu trong c#

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#