Có nhiều cách để có thể chuyển đổi dữ liệu trong C# như sử dụng các phương thức Parse, TryParse, sử dụng lớp Convert hay là đôi khi còn có thể ép kiểu (Casting) từ kiểu dữ liệu này sang kiểu dữ liệu khác. Chúng ta sẽ lần lượt tìm hiểu các cách này cũng như sự khác biệt giữa chúng

Parse Phương thức Parse là phương thức được sử dụng khá phổ biến khi chúng ta muốn chuyển đổi một chuỗi sang một kiểu dữ liệu tương ứng.Mỗi kiểu dữ liệu cơ bản trong C# đều có phương thức Parse để chuyển đổi sang kiểu dữ liệu đó. Ta có Boolean.Parse dùng để chuyển về kiểu Boolean, Int32.Parse dùng để chuyển về kiểu Int 32, Double.Parse dùng để chuyển chuỗi về kiểu Double .v.v… Một số ví dụ các câu lệnh minh họa cho việc chuyển đổi sử dụng phương thức Parse

int a = Int32.Parse(“123”); //a sẽ mang giá trị 123float b = Float.Parse(“20.7”); //b sẽ mang giá trị 20.7bool c = Boolean.Parse(“true”); //c sẽ mang giá trị true

Nếu như chuỗi chúng ta truyền vào là rỗng, không đúng định dạng hoặc vượt quá giá trị cho phép thì chúng ta sẽ nhận được các Exception tương ứng. Ví dụ:

int a = Int32.Parse(“Hello”); //sai định dạng, FormatException byte b = Byte.Parse(“10000000000”); //quá giới hạn, OverflowException bool c = Boolean.Parse(null); //tham số là null, ArgumentNullException

Convert

Lớp Convert là một lớp tiện ích trong C# cung cấp cho chúng ta rất nhiều phương thức tĩnh khác nhau để chuyển đổi từ một kiểu dữ liệu này sang kiểu dữ liệu khác. Tham số mà các phương thức trong Convert nhận không nhất thiết phải là chuỗi mà có thể ở nhiều kiểu dữ liệu khác nhau (int, bool, double…). Ví dụ:

int a = Convert.ToInt32(“123”); //chuyển chuỗi 123 sang số nguyênbool b = Convert.ToBoolean(27); //chuyển số 27 sang kiểu bool

Các phương thức trong lớp Convert sẽ trả về giá trị mặc định nếu như tham số truyền vào là null. Còn trong các trường hợp sai định dạng hoặc vượt quá giới hạn thì các phương thức đó sẽ ném ra các ngoại lệ tương tự như phương thức Parse. Ví dụ

bool a = Convert.ToBoolean(“hello”); //FormatExceptionint b = Convert.ToInt32(“123456787654”); //OverflowExceptiondouble d = Convert.ToDouble(null); //trả về giá trị mặc định

Kết luận: C# cung cấp nhiều giải pháp để chúng ta có thể chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác. Việc sử dụng phương pháp nào là tùy vào đặc điểm của chương trình cũng như thói quen của người sử dụng. Nếu như biết cách sử dụng linh hoạt giữa các phương pháp thì chúng ta có thể viết được một chương trình dễ đọc, dễ hiểu và dễ quản lý.

Bạn đang xem: Parse là gì

*

Tran Xuan Chien.

Japan Advanced Institute of Science and Technology – Japan.

Xem thêm: Shed Là Gì

Senior Developer – NUS Technology.

Xem thêm: Hệ Số Lương Tiếng Anh Là Gì, Hệ Số Lương In English With Contextual Examples

View Archive →

*

Duy Nguyensays:

Ngoài việc sử dụng casting thuần túy, chúng ta có thể sử dụng toán tử “as”.Nhược điểm của việc sử dụng casting thuần túy là nếu việc casting thất bại thì chúng ta sẽ nhận được một exception cho việc thất bại đó. Tuy nhiên, nếu sử dụng toán tử “as”, nếu việc casting không thành công thì chúng ta sẽ nhận về một giá trị null thay vì là một exception.Ví dụ: var myObject = existingObject as MyObject;Giả định rằng nếu việc chuyển đổi trên sẽ thất bại thì myObject lúc này sẽ mang giá trị null.

Chuyên mục: Hỏi Đáp