代码之家  ›  专栏  ›  技术社区  ›  GibboK

最好使用int.Parse或Convert.ToInt32[duplicate]

  •  14
  • GibboK  · 技术社区  · 14 年前


    Whats the main difference between int.Parse() and Convert.ToInt32

    嗨,伙计们,我想知道什么是正反两面的 Convert.ToInt32与int.Parse。 谢谢你的支持!

    下面是我使用的语法示例

                int myPageSize = Convert.ToInt32(uxPageSizeUsersSelector.SelectedValue);
    
                int myPageSize = int.Parse(uxPageSizeUsersSelector.SelectedValue);
    

    我也发现了这篇文章,也许可以帮助我们讨论一下 http://dotnetperls.com/int-parse http://aspdotnethacker.blogspot.com/2010/04/difference-between-int32parsestring.html http://aspdotnethacker.blogspot.com/p/visual-studio-performance-wizard.html

    4 回复  |  直到 8 年前
        1
  •  26
  •   PhistucK    10 年前

    Convert.ToInt32 用于处理任何实现 IConvertible 可以转换为 int . 也, 转换为32 回报 0 null ,而 int.Parse ArgumentNullException .

    内部分析

    事实证明 string I不可逆 内部分析 ToInt32 方法。

    如果你打电话 Convert.ToIn32 在一个 一串 打电话 内部分析 ,只需稍微增加一些开销(多调用几个方法)。

    一串 到某个原始类型(它们都调用 Parse 一串 对象(例如,您正在解析文本文件),我建议 解析 ,因为它更直接。

    Convert 上课。

        2
  •  17
  •   Kyle C    14 年前

    没什么区别。这是msdn上的报价。

    更容易在所有基础之间转换 类型。

    下面调用 Int32.Parse.解析。所以唯一的区别是 如果将空字符串传递给 Convert返回0,而 Int32.Parse抛出 ArgumentNullException。 MSDN

        3
  •  3
  •   Moo    14 年前

        4
  •  2
  •   Pieter van Ginkel    14 年前

    Convert接口是一个更通用的接口。但最终结果应该是一样的。

    在内部,它只调用int.Parse:

    public static int ToInt32(String value) {
        if (value == null)
            return 0;
        return Int32.Parse(value, CultureInfo.CurrentCulture);
    }
    

    推荐文章