【问题标题】:What's a great way to convert a string to a number in C#?在 C# 中将字符串转换为数字的好方法是什么?
【发布时间】:2010-03-13 15:03:14
【问题描述】:

我熟悉:

Convert.ToInt32(texthere);

但是还有另一种更清洁的方法吗?我喜欢为同事提供可读的代码,我一直在寻找任何能让我的工作看起来更明显的东西。

【问题讨论】:

  • 如果您的同事无法弄清楚 Convert.ToInt32() 的作用,他们需要寻找新的职业。

标签: c# string int


【解决方案1】:

Convert.ToInt32 有什么不明显的地方?

Convert这个值ToInt32?

【讨论】:

    【解决方案2】:

    您还可以使用 int、double、float 和 decimal 类型的 Parse 和 TryParse 方法。

    【讨论】:

      【解决方案3】:

      【讨论】:

        【解决方案4】:

        Int.parse、float.parse 等等。

        【讨论】:

          【解决方案5】:

          就我个人而言,我会使用所述的标准方法(Convert.ToInt32、double.TryParse 等),但如果您想要另一种选择......

          您可以添加一个扩展方法,如下所示(未测试):

          public static class Extensions
          {
                  public static int ConvertStringToInt(this string s)
                  {
                          return Convert.ToInt32(s);
                  }
                  public static long ConvertStringToLong(this string s)
                  {
                          return Convert.ToInt64(s);
                  }
          }
          

          然后你可以:

                  string test = "1234";
                  int testToInt = test.ConvertStringToInt();
                  long testToLong = test.ConvertStringToLong();
          

          【讨论】:

          • +1 表示唯一性。我不确定为什么有人投了反对票,但这是一个不错的替代解决方案。就我个人而言,我会使用较短的方法,例如 ToInt,但这只是个人喜好。
          • 您的方法名称具有误导性。 ConvertStringToInt 应该返回 Int32,ConvertStringToDouble 应该返回 Int64
          • @Sam,是的,更短的方法名称可能会更好 - 但我正在寻找更具描述性的东西!
          • @amelvin,返回类型实际上仍然不正确。 ConvertStringToInt 应该返回int,它当前显示stringConvertStringToLong 应该返回 long 但目前也显示 string。然后在您的示例中使用两者作为返回 int 然后 double 在这种情况下将是编译器错误。
          • @Sam 我在发布代码之前没有测试过代码,你是对的。我刚刚构建了它并修复了编译器错误,测试了结果并调整了代码。感谢您的提醒。
          猜你喜欢
          • 2011-08-11
          • 1970-01-01
          • 1970-01-01
          • 2020-10-24
          • 2010-09-18
          相关资源
          最近更新 更多