Chuyển kiểu là chuyển đổi từ một kiểu dữ liệu này sang một kiểu dữ liệu khác. Nó còn được gọi là ép kiểu. Có 2 cách chuyển giá trị từ kiểu này sang kiểu khác đó là:
- Chuyển kiểu ngầm định (implicit type-cast)
- Chuyển kiểu chỉ định (explicit type-cast)
Sau đây chúng ta cùng làm rõ nhé
- Chuyển kiểu ngầm định (implicit type-cast): một kiểu chuyển đổi an toàn được xây dựng bởi C#, Không cần lập trình viên can thiệp.
Ví dụ như chuyển đổi từ kiểu có phạm vi nhỏ đến lớn hơn và chuyển đổi từ các lớp kế thừa thành các lớp cơ sở.
Vd: Ép từ kiểu nhỏ qua kiểu lớn
int i = 59; double x = i;
Vd: Ép từ lớp dẫn xuất qua lớp cơ sở
string s = "Hello"; object o = s;
From | To |
sbyte | short, int, long, float, double, decimal |
byte | short, ushort, int, uint, long, ulong, float, double, decimal |
short | int, long, float, double, decimal |
ushort | int, uint, long, ulong, float, double, decimal |
int | long, float, double, decimal |
uint | long, ulong, float, double, decimal |
long, ulong | float, double, decimal |
float | double |
char | ushort, int, uint, long, ulong, float, double, decimal |
- Chuyển kiểu tường minh (explicit type-cast): Loại này được thực hiện tường minh bởi người dụng bằng cách sử dụng những hàm định nghĩa trước. Nó yêu cầu một toán tử ép kiểu.
Ép từ kiểu lớn qua kiểu nhỏ: có thể mất giá trị
double x = 74.86; int i = (int)x; // i = 74
Ép từ lớp cơ sở qua lớp dẫn xuất
string s = "Hello"; object o = s; string s2 = (string)o;
Sau đây là ví dụ về ép kiểu với kết quả trả về là 5673
using System; namespace TypeConversionApplication { class ExplicitConversion { static void Main(string[] args) { double d = 5673.74; int i; // chuyển từ double sang int. i = (int)d; Console.WriteLine(i); Console.ReadKey(); } } }
* Một số phương thức chuyển kiểu được xây dựng sẵn:
STT | Methods & Description |
1 | ToBoolean
Chuyển một kiểu sang kiểu Boolean nếu có thể. |
2 | ToByte
Chuyển đổi một kiểu thành dạng byte. |
3 | ToChar
Chuyển thành kiểu ký tự Unicode nếu có thể. |
4 | ToDateTime
Chuyển kiểu int hoặc string về dạng DateTime. |
5 | ToDecimal
Chuyển kiểu dấu chấm động hoặc kiểu int sang kiểu thập phân. |
6 | ToDouble
Chuyển thành kiểu double. |
7 | ToInt16/32/64
Chuyển thành kiểu 16/32/64-bit integer. |
10 | ToSbyte
Chuyển thành kiểu byte có dấu. |
8 | ToSingle
Chuyển thành kiểu số dấu chấm động nhỏ. |
9 | ToString
Chuyển kiểu bất kỳ thành chuỗi. |
10 | ToUInt16/32/64
Chuyển thành kiểu in/long/bit không dấu. |
Using Convert class: Thường dùng khi cần chuyển đổi giữa các kiểu không có liên hệ với nhau
Cú pháp:
Convert.toDataType(SourceValue)
Ví dụ: chuyển từ chuỗi sang số thực
string s1 = "56.8"; string s2 = "95"; double x = Convert.ToDouble(s1); // x = 56.8 int i = Convert.ToInt32(s2); // i = 95 byte j = Convert.ToByte(x); // j = 56, ít dùng
Xem thêm: Bài 06: Cách sử dụng biến trong C#