Bài 05: Cách chuyển kiểu dữ liệu (Type Conversion) trong C#

0
2484

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#

This site uses Akismet to reduce spam. Learn how your comment data is processed.