Advertisement
Guest User

Untitled

a guest
May 4th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. namespace DifferenceParseAndConvert
  2. {
  3. using System;
  4.  
  5. class Program
  6. {
  7. static void Main()
  8. {
  9. //
  10. // ParseメソッドとConvert.ToXXXメソッドの僅かな違い
  11. //
  12. // Parseメソッド、つまり、int.Parseなどのメソッドは
  13. // 解析できない値、つまり、nullを設定すると例外が発生する。
  14. //
  15. // しかし、Convert.ToXXXメソッドはnullを渡しても例外とはならず、処理される。
  16. //
  17. // ただし、どちらの方法でも空文字を指定すると例外が発生する (FormatException)
  18. //
  19. string numberString = "123";
  20. string nullString = null;
  21. string emptyString = string.Empty;
  22.  
  23. //
  24. // int.Parseメソッド
  25. //
  26. Console.WriteLine("【****** int.Parse ******】");
  27. // 普通の数値文字列は成功
  28. Console.WriteLine(int.Parse(numberString));
  29. try
  30. {
  31. // nullを渡すと当然エラー
  32. Console.WriteLine(int.Parse(nullString));
  33. }
  34. catch (ArgumentNullException nullEx)
  35. {
  36. Console.WriteLine("int.Parse(null) ==> 例外発生, {0}", nullEx.Message);
  37. }
  38.  
  39. try
  40. {
  41. // 空文字でもエラー
  42. Console.WriteLine(int.Parse(emptyString));
  43. }
  44. catch (FormatException formatEx)
  45. {
  46. Console.WriteLine("int.Parse('') ==> 例外発生, {0}", formatEx.Message);
  47. }
  48.  
  49. //
  50. // Convert.ToInt32メソッド
  51. //
  52. Console.WriteLine("\n【****** Convert.ToInt32 ******】");
  53.  
  54. // 普通の数値文字列は成功
  55. Console.WriteLine(Convert.ToInt32(numberString));
  56. // nullを渡すとエラーにならず初期値が返る
  57. Console.WriteLine(Convert.ToInt32(nullString));
  58.  
  59. try
  60. {
  61. // 空文字を渡すとエラー
  62. Console.WriteLine(Convert.ToInt32(emptyString));
  63. }
  64. catch (FormatException formatEx)
  65. {
  66. Console.WriteLine("Convert.ToInt32('') ==> 例外発生, {0}", formatEx.Message);
  67. }
  68.  
  69. //
  70. // おまけ:
  71. // int.TryParse
  72. //
  73. Console.WriteLine("\n【****** int.TryParse ******】");
  74.  
  75. int i1;
  76. int i2;
  77. int i3;
  78.  
  79. Console.WriteLine(int.TryParse(numberString, out i1));
  80. Console.WriteLine(int.TryParse(nullString, out i2));
  81. Console.WriteLine(int.TryParse(emptyString, out i3));
  82.  
  83. Console.ReadLine();
  84. }
  85. }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement