Credit : http://www.codeproject.com/Articles/32885/Difference-Between-Int32-Parse-Convert-ToInt32-and
Int32.Parse (string s) ใช้แปลง string ที่แสดงตัวเลข integer 32 bit signed
- ถ้าค่า s เป็น null จะ throw ArgumentNullException
- ถ้าค่า s เป็นค่าอื่น จะ throw FormatException
- ถ้า ค่า s เกิน MinValue และ MaxValue จะ throw OverflowException
string s1 = “1234″;Convert.ToInt32(string s) ใช้แปลง string ที่แสดงตัวเลข integer 32 bit signed ให้เป็นตัวเลข
string s2 = “1234.65″;
string s3 = null;
string s4 = “123456789123456789123456789123456789123456789″;
int result;
bool success;
result = Int32.Parse(s1); //– 1234
result = Int32.Parse(s2); //– FormatException
result = Int32.Parse(s3); //– ArgumentNullException
result = Int32.Parse(s4); //– OverflowException
- ถ้าค่า s เป็น null จะ ได้ค่าเป็น 0
- ถ้าค่า s เป็นค่าอื่น จะ throw FormatException
- ถ้าค่า s เกิน MinValue และ MaxValue จะ throw OverflowException
result = Convert.ToInt32(s1); //– 1234Int32.TypParse(string s,out int) ใช้แปลง ค่า string ที่แทนตัวเลข integer 32 bit ให้กับ out variable และ return true ถ้าแปลงได้ และ false ถ้าแปลงไม่ได้
result = Convert.ToInt32(s2); //– FormatException
result = Convert.ToInt32(s3); //– 0
result = Convert.ToInt32(s4); //– OverflowException
- ถ้าค่า s เป็น null out จะ ได้ค่าเป็น 0
- ถ้าค่า s เป็นค่าอื่น จะ throw FormatException
- ถ้าค่า s เกิน MinValue และ MaxValue จะ throw OverflowException
success = Int32.TryParse(s1, out result); //– success => true; result => 1234กล่าวโดยสรุป Convert.ToInt32 ดีกว่า Int32.Parse เพราะ ให้ค่า 0 แทนการ throw exception แต่การใช้งานนั้นก็สามารถเลือกใช้ตามความเหมาะสมนะครับ TypeParse อาจจะเป็นตัวเลือกที่ดีที่สุด เพราะ ตัวมันเองจัดการกับ exception หมดแล้ว
success = Int32.TryParse(s2, out result); //– success => false; result => 0
success = Int32.TryParse(s3, out result); //– success => false; result => 0
success = Int32.TryParse(s4, out result); //– success => false; result => 0
Credit : http://www.codeproject.com/Articles/32885/Difference-Between-Int32-Parse-Convert-ToInt32-and
ref:http://gpluspluss.com/2012/04/05/different-int32-parse-convert-toint32-and-int32-tr/
No comments:
Post a Comment