Skip to content
Site Tools
Increase font size Decrease font size Default font size default color blue color green color
Trang chủ
Diễn đàn Phòng Công Nghệ Thông Tin - Dược Hậu Giang
Diễn đàn
>
Lập trình
C#: Sự khác nhau giữa Int32.Parse(), Convert....
Xin chào, Khách
Vui lòng Đăng nhập.

C#: Sự khác nhau giữa Int32.Parse(), Convert.ToInt32(), và Int32.TryParse()
DHG Pharma C#: Sự khác nhau giữa Int32.Parse(), Convert.ToInt32(), và Int32.TryParse()
Đăng bởi Nguyễn Viết Vinh lúc 09:01 09/09/2011



Int32.parse(string s): là phương thức chuyển đổi chuỗi ra số nguyên (32 bit) tương đương. Khi s là giá trị rỗng (null) kết quả trả về sẽ là ArgumentNullException. Nếu s khác với kiểu số ngyên kết quả trả về sẽ là FormatException. Hoặc sẽ trả về OverflowException nếu s có kiểu số quá lớn (>MaxValue) hoặc quá nhỏ (
Ví dụ:
string s1 = "1234";
string s2 = "1234.56";
string s3 = null;
string s4 = "123456789123456789123456789123456789123456789";

int ketqua;
bool success;

ketqua = Int32.Parse(s1); //-- 1234
ketqua = Int32.Parse(s2); //-- FormatException
ketqua = Int32.Parse(s3); //-- ArgumentNullException
ketqua = Int32.Parse(s4); //-- OverflowException


Convert.ToInt32(string s): tương tự như với Int32.parse(string). Tuy nhiên, khi s là chuỗi khác với dãy số nguyên, thì kết quả trả về sẽ là 0 chứ không phải là ArgumentNullException.

Ví dụ:
ketqua = Convert.ToInt32(s1); //-- 1234
ketqua = Convert.ToInt32(s2); //-- FormatException
ketqua = Convert.ToInt32(s3); //-- 0
ketqua = Convert.ToInt32(s4); //-- OverflowException


bool Int32.TryParse(string s,int giatri): Cố gắn đổi số trong chuỗi s thành số nguyên 32 bit, kết quả chuyển đổi sẽ được gán trong biến value. Tuy nhiên, Tuy nhiên chuyển đổi thành công hay không thì kết quả trả về bởi hàm bool. Dựa vào hàm này, ta có thể kiểm tra xem 1 chuỗi có thể biểu diễn ra số nguyên hay không?

Ví dụ:
success = Int32.TryParse(s1, int ketqua); //-- success => true; ketqua=> 1234
success = Int32.TryParse(s2, int ketqua); //-- success => false; ketqua=> 0
success = Int32.TryParse(s3, int ketqua); //-- success => false; ketqua=> 0
success = Int32.TryParse(s4, int ketqua); //-- success => false; ketqua=> 0


Ta có thể thấy Convert.ToInt32 là tốt hơn Int32.Parse, vì nó trả về 0 thay vì trả về ArgumentNullException khi s không biểu diễn được ở dạng số nguyên. Nhưng ở đây, ta có cách tốt nhất, đó là sử dụng Int32.TryParse, hàm không trả về các lỗi ngoại lệ, mà trả về giá trị 0 và kết quả cho biến bool.

Sưu tầm từ http://Khanh.Com.Vn



Đến từ:
Phòng CNTT - DHG


Bài viết: 1348

Ghé lần cuối:
07:13 29/12/2016
Không trực tuyến Không trực tuyến

Hiển thị tất cả các bài viết của người này



Diễn đàn Phòng Công Nghệ Thông Tin - Dược Hậu Giang



DHG.Hospital 3.1


Notice: Use of undefined constant _DML_LINKTO - assumed '_DML_LINKTO' in /home/dhgpharma/it.dhgpharma.com.vn/administrator/components/com_docman/classes/DOCMAN_model.class.php on line 343

Facebook DHG.Hospital

Người dùng trực tuyến

Hiện có 28 khách Trực tuyến