Dẫn nhập

Ở bài TOÁN TỬ TRONG C#họ sẽ một câu lệnh nlỗi sau: SoNguyen = Int32.Parse(strSoNguyen) hẳn nhiên mẫu ghi chú “Ép giao diện tài liệu vừa nhập lệ (dạng chuỗi) thanh lịch dạng số rồi gán giá trị vào thay đổi SoNguyen”.

Bạn đang xem: 4

Vậy “nghiền kiểu” là gì? Sử dụng chúng như vậy nào? Bài học hôm nay để giúp họ trả lời phần đông câu hỏi này – Ép loại vào C#.

Nội dung

Để phát âm gọi bài này tốt nhất chúng ta đề xuất tất cả kỹ năng cơ bản về các phần:

Trong bài học này, chúng ta sẽ thuộc tìm hiểu các vấn đề:

Ép dạng hình là gì? Tại sao đề xuất nghiền kiểu?Có mấy một số loại xay kiểu? Cách sử dụng từng loại?lấy ví dụ như công tác sử dụng nghiền hình trạng.

Ép phong cách là gì? Tại sao phải nghiền kiểu?

Ép hình dạng là biến đổi dữ liệu thuộc phong cách dữ liệu này thành kiểu dữ liệu khác.

Tại sao yêu cầu xay kiểu?

Để chuyển tài liệu sang 1 kiểu dáng dữ liệu mong ước giao hàng đến câu hỏi làm việc giải pháp xử lý.Đưa tài liệu về format mà mình ước muốn (ví dụ gửi thứ hạng ngày tháng mặt Mỹ sang dạng tháng ngày mặt Việt Nam).

Có mấy một số loại ép kiểu? Cách áp dụng từng loại

Trong C#, nghiền phong cách bao gồm 4loại:

Chuyển thay đổi dạng hình ngầm định (implicit).Chuyển đổi đẳng cấp tường minc (explicit).Sử dụng cách tiến hành, lớp hỗ trợ sẵn:Dùng cách thức Parse(), TryParse().Dùng lớp cung ứng sẵn (Convert).Người sử dụng trường đoản cú định nghĩa dạng hình thay đổi.

Chuyển đổi kiểu dáng ngầm định (implicit)

Việc thay đổi này được thực hiện vày trình biên dịch với chúng ta không đề xuất tác động ảnh hưởng gì.

Được triển khai lúc chuyển mẫu mã từ

Ví dụ:

int intValue = 10;long longValue = intValue; /* Chuyển vẻ bên ngoài ngầm định bởi vì hình dạng long gồm miền cực hiếm to hơn hình trạng int bắt buộc có thể chuyển trường đoản cú int thanh lịch long.*/float floatValue = 10.9f;double doubleValue = floatValue; /* Tương tự vì chưng đẳng cấp double tất cả miền quý hiếm to hơn hình dáng float cần rất có thể gửi từ float sang double.*/

Chuyển thay đổi kiểu tường minh (explicit)

Chuyển đổi thứ hạng tường minc là việc gửi kiểu một biện pháp ví dụ với dùng từ bỏ khóa chỉ định và hướng dẫn chứ không hề dùng cách làm.

Một số Điểm lưu ý của biến hóa hình trạng tường minh:

Thường được dùng để làm biến hóa thân những kiểu dữ liệu bao gồm đặc điểm tương tự nhau (hay thì với số).Cú pháp nđính thêm gọn gàng vì chưng ko áp dụng phương thức.Chỉ lúc chúng ta thấu hiểu biến chuyển kia ở trong dạng hình dữ liệu nào mới tiến hành chuyển đổi. trái lại có thể lỗi Lúc chạy chương trình.Cú pháp:

(ểu dữ liệu>)

u dữ liệu> là phong cách tài liệu cơ mà mình muốn chuyển sang trọng. là đổi thay không dữ liệu đề nghị xay mẫu mã.Phải gồm cặp vệt ngoặc tròn ( ).

Ý nghĩa:

Ép loại của về ểu dữ liệu> trường hợp thành công xuất sắc đang trả ra quý giá hiệu quả trở lại sẽ báo lỗi lịch trình. Đặc biệt so với số:

Ta bao gồm thực hiện xay hình dáng dữ liệu lớn hơn về kiểu dáng tài liệu nhỏ rộng cơ mà ko báo lỗi.Nếu dữ liệu buộc phải ép kiểu dáng vượt thừa miền cực hiếm của loại tài liệu muốn ép thứ hạng về thì lịch trình vẫn tự giảm bit mang lại cân xứng cùng với kĩ năng chứa đẳng cấp dữ liệu kia (giảm trường đoản cú bên trái qua).

Ví dụ:

int i = 300; // 300 tất cả mã nhị phân là 100101100byte b = (byte)i; /* bởi hình dạng byte gồm số lượng giới hạn cho quý giá 255 thôi đề xuất thiết yếu cất số 300 được mà lại hình dáng byte tất cả kích thước là 1 bytes tương đương 8 bit. Như vậy ta đề xuất cắt mã nhị phân của số 300 về còn 8 bit là được. Mã nhị phân 300 là 100101100 cắt từ trái sang một bit ta được 00101100 (đầy đủ 8 bit) tương tự cùng với số 44. Cuối cùng phát triển thành b đang sở hữu cực hiếm là 44.*/Console.WriteLine(" i = " + i);Console.WriteLine(" b = " + b);Kết quả Lúc chạy công tác trên:

*

Việc ép kiểu dáng nắm này làm bản thân lưu giữ lại một sự việc nho nhỏ tuổi sau: Tại bàiTOÁN TỬ TRONG C#ta có nói là toán thù tử “/” là thực hiện chia rước phần nguyên giả dụ cả 2 toán thù hạng đều là số ngulặng. Vậy nếu như họ muốn chia ra tác dụng chính xác luôn luôn thì đề xuất có tác dụng sao?

Ý tưởng dễ dàng là ta nghiền hình dạng 1 trong các 2 toán hạng kia về dạng số thực là dứt.Cách không giống, ta rất có thể làm đơn giản và dễ dàng là nhân một trong các 2 toán hạng với số 1.0 cũng trở nên tạo ra tác dụng suôn sẻ mong.Ví dụ:

double d = 2 / 3; // kết quả ra 0 bởi 2 và 3 những là số nguyên buộc phải tiến hành 2 chia lấy phần nguyên ổn cùng với 3 được 0 double k = (double)2 / 3; // Ép đẳng cấp số 2 trường đoản cú thứ hạng ngulặng thanh lịch dạng hình số thực. vì thế công dụng phnghiền chia vẫn ra số thực double t = 1.0 * 2 / 3; // Thực hiện tại nhân 1.0 cùng với 2 mục đích nhằm phát triển thành số 2 (số nguyên) thành 2.0 (số thực) Console.WriteLine(" d = 0 k = 1 t = 2", d, k, t);

Kết trái Khi chạy công tác thì biến k cùng biến đổi t phần lớn mang lại giá trị nhỏng nhau:

*

Sử dụng phương thức, lớp cung cấp sẵn

Phương thơm thức Parse(), TryParse()Parse()

Cú pháp:

ểu dữ liệu>.Parse();

u dữ liệu> là dạng hình tài liệu cơ bạn dạng mình muốn thay đổi lịch sự.

Ý nghĩa:

Chuyển thay đổi một chuỗi qua 1 mẫu mã tài liệu cơ phiên bản tương xứng.Phương thơm thức trả về quý giá tác dụng gửi đẳng cấp nếu như chuyển đẳng cấp thành công. Ngược lại sẽ báo lỗi công tác.

Ví dụ:

string stringValue = "10"; int intValue = int.Parse(stringValue); // Chuyển chuỗi stringValue sang dạng hình int cùng giữ quý giá vào biến hóa intValue - Kết quả intValue = 10 double makiemluc.vn = double.Parse("10.9"); // Chuyển chuỗi quý giá hằng "10.9" sang vẻ bên ngoài int với lưu lại quý hiếm vào biến makiemluc.vn - Kết trái makiemluc.vn = 10.9

TryParse()

Cú pháp:

ểu dữ liệu>.TryParse(, out );

u dữ liệu> là đẳng cấp tài liệu cơ phiên bản mình muốn biến hóa sang. là tài liệu trực thuộc đẳng cấp chuỗi, rất có thể là trở thành hình dạng chuỗi hoặc giá trị hằng mẫu mã chuỗi.

Ý nghĩa:

Chuyển một chuỗi qua một vẻ bên ngoài dữ liệu cơ bản tương ứng.Phương thơm thức sẽ trả về true giả dụ gửi hình trạng thành công với quý hiếm tác dụng chuyển thứ hạng sẽ lưu giữ vào . Ngược lại sẽ trả về false cùng vẫn với quý giá 0.

Ví dụ:

int Result; // Biến cất giá trị hiệu quả Khi nghiền kiểu dáng thành côngbool isSuccess; // Biến đánh giá việc ép thứ hạng có thành công xuất sắc xuất xắc khôngstring Data1 = "10", Data2 = "Kteam"; // Dữ liệu bắt buộc xay kiểuisSuccess = int.TryParse(Data1, out Result); // Thử xay thứ hạng Data1 về int nếu như thành công thì Result đang cất cực hiếm hiệu quả nghiền đẳng cấp và isSuccess sẽ sở hữu quý giá true. trái lại Result vẫn có cực hiếm 0 cùng isSuccess có cực hiếm falseConsole.Write(isSuccess == true ? " Success !" : " Failed !"); // Sử dụng toán tử 3 ngôi để in ra được màn hình hiển thị bài toán ép thứ hạng đã thành công hay không thắng cuộc.Console.WriteLine(" Result = " + Result); // In giá trị Result ra màn hìnhisSuccess = int.TryParse(Data2, out Result); // Tương tự như trên nhưng lại thao tác làm việc với Data2Console.Write(isSuccess == true ? " Success !" : " Failed !"); // Tương từ nlỗi trênConsole.WriteLine(" Result = " + Result); // Tương trường đoản cú nlỗi trênKết trái Khi chạy đoạn ví dụ trên là

*

Vì Data1 rất có thể xay hình dáng về int đề nghị kết quả thành công với in giá trị ra. Còn Data2 cấp thiết xay kiểu dáng về kiểu int đề nghị hiệu quả không thành công xuất sắc với in ra cực hiếm 0.

Lưu ý Lúc sử dụng Parse() TryParse():

Tđắm đuối số truyền vào nên là một chuỗi.Cả 2 cách làm được Gọi thông qua thương hiệu mẫu mã tài liệu.Parse() trả về giá trị tác dụng nghiền phong cách trường hợp ép giao diện ko thành công thì vẫn báo lỗi. Còn TryParse() trả về xem xay đẳng cấp tất cả thành công xuất sắc hay là không, giá trị hiệu quả ép mẫu mã đã nằm trong .Ngoài TryParse() ra thì vẫn có một giải pháp nghiền kiểu ko báo lỗi lịch trình. Đó là thực hiện toán thù tử as:Lớp hỗ trợ sẵn (Convert)

Convert là lớp app được C# hỗ trợ sẵn cung ứng đến họ các thủ tục thay đổi hình trạng dữ liệu.

Các điểm lưu ý của những cách thức trong lớp Convert:

Tmê say số truyền vào của các cách tiến hành ko độc nhất thiết là chuỗi (hoàn toàn có thể là int, bool, . . .).Nếu tyêu thích số truyền vào là null thì những cách làm đang trả về quý hiếm mặc định của kiểu tài liệu.Các trường hợp tđắm say số truyền vào không nên format hoặc thừa vượt giới hạn thì chương trình sẽ báo lỗi nhỏng cách tiến hành Parse().

Một số thủ tục gửi thứ hạng mà lại Convert có:

*

Các phương thức đưa đẳng cấp trong lớp Convert rất nhiều rất có thể nhận những hình trạng tài liệu cơ phiên bản (int, bool, byte, . . .) có tác dụng tmê mệt số truyền vào.Tại bảng trên tôi chỉ liệt kê đều phương thức tốt sử dụng. Để tham khảo thêm những cách làm gửi giao diện khác những chúng ta cũng có thể sử dụng công dụng nhắc nhở của Visual Studio:Trước tiên chúng ta gõ “Convert.” (xem xét dấu chấm ngay thức thì sau Convert)Visual Studio sẽ hiển thị ra toàn bộ những thủ tục gồm vào lớp Convert. Giờ bạn chỉ bài toán lựa chọn cách làm mong mỏi sử dụng là được.

*

Người sử dụng tự khái niệm hình trạng đưa đổi

lúc chúng ta tạo nên một hình dáng tài liệu mới họ cũng cần được tư tưởng các chuyển đổi vẻ bên ngoài tài liệu trường đoản cú hình dáng cơ phiên bản quý phái hình dáng từ bỏ quan niệm với ngược trở lại.

Nhưng trong phạm vi kiến thức hiện giờ thì tôi chỉ rất có thể ra mắt cho chúng ta biết là mình rất có thể tự tư tưởng vẻ bên ngoài thay đổi còn việc thực hiện như thế nào sẽ được trình bày trong bài xích CLASS TRONG C#.

Ví dụ chương trình sử dụng xay kiểu

Tại các phần bên trên mình đều sở hữu trình bày ví dụ minh họa với giải thích cụ thể rồi bắt buộc các bạn xem xét lại.

Ví dụ: viết công tác nhập lệ 2 số a với b kế tiếp in ra tổng, hiệu, tích, tmùi hương của 2 số đó

Gợi ý/Hướng giải quyết bài toán ví dụ:

trước hết ta kinh nghiệm người dùng nhtràn lên 2 số a cùng b (hôm nay cực hiếm nhtràn lên vẫn ở hình dáng chuỗi).Ép phong cách quý giá vừa nhập vào loại chuỗi. Nếu thất bại đã thông báo lỗi cùng chấm dứt lịch trình, ngược trở lại thì thực hiện tiếp.Tính tổng, hiệu, tích, tmùi hương thì 2 số kia và in hiệu quả ra màn hình hiển thị.

Cmùi hương trình minch họa:

int A, B; // Biến chứa giá trị 2 số vừa nhtràn vào (đẳng cấp số) int Tong, Hieu, Tich; // Biến đựng tác dụng tổng, hiệu, tích double Thuong; // Vì phnghiền phân chia có thể đã tạo ra số thập phân đề xuất sử dụng đổi thay phong cách double nhằm đựng nó. string strA, strB; // Biến cất giá trị 2 số nhập lệ từ bỏ bàn phím (kiểu chuỗi) Console.WriteLine(" **************************************************"); Console.WriteLine(" * *"); Console.WriteLine(" * Chuong trinc tinch tong, hieu, tich, thuong *"); Console.WriteLine(" * *"); Console.WriteLine(" **************************************************"); Console.Write(" Moi ban nhap so A: "); strA = Console.ReadLine(); // Nhận quý hiếm nhập lệ từ keyboard đến số A Console.Write(" Moi ban nhap so B: "); strB = Console.ReadLine(); // Nhận quý giá nhập lệ tự bàn phím mang lại số B A = int.Parse(strA); // Ép đẳng cấp giá trị nhập lệ tự kiễu chuỗi quý phái thứ hạng số nguyên, áp dụng cách thức Parse() B = int.Parse(strB); // Tương tự Tong = A + B; Hieu = A - B; Tich = A * B; Thuong = (double)A / B; // Ép kiểu dáng số A về số thập phân để phnghiền phân tách tạo ra số thập phân Console.WriteLine(" Tong = " + Tong); Console.WriteLine(" Hieu = " + Hieu); Console.WriteLine(" Tich = " + Tich); Console.WriteLine(" Thuong = " + Thuong);Kết trái Lúc chạy chương trình trên:

*

Các các bạn lưu ý 2 trường đúng theo ép loại vào ví dụ trên, chính là 2 trường thích hợp hay gặp tốt nhất của ép phong cách được sử dụng vào phần đông những lịch trình tính toán thù từ bỏ dễ dàng và đơn giản cho phức tạp.Một sự việc xẩy ra vào ví dụ trên là “nếu người tiêu dùng ko nhập lệ một số trong những mà lại nhập chữ hoặc bỏ trống thì sao?”lúc đó chương trình sẽ ảnh hưởng lỗi ngay:

*

Trong thời điểm này ta nghĩ ngay cho cách làm TryParse() nhằm giải quyết và xử lý vấn đề trên. Nào hãy thử từ xử lý và gửi lại bài bác giải ngay cho mình soát sổ nhé. Chúc các bạn thành công!

Kết luận

Nội dung bài này giúp chúng ta nạm được:

Khái niệm về ép kiểu cùng tại sao đề xuất nghiền kiểu.Các một số loại ép hình dạng với giải pháp sử dụng.lấy ví dụ về áp dụng nghiền mẫu mã.

Xem thêm: Top #1 Tải Game Đột Kích Miễn Phí, Tải Cf Mobile

Bài học sau họ vẫn thuộc tò mò một có mang tiếp sau đó là CẤU TRÚC IF - ELSE TRONG C#

Cảm ơn các bạn vẫn theo dõi và quan sát bài viết. Hãy vướng lại comment hoặc góp ý của chính bản thân mình nhằm cải cách và phát triển bài viết tốt rộng. Đừng quên “Luyện tập – Thử thách – Không ngại ngùng khó”.