【问题标题】:String.IsNullOrEmpty or string.IsNullOrEmpty [duplicate]String.IsNullOrEmpty 或 string.IsNullOrEmpty [重复]
【发布时间】:2011-01-25 09:22:09
【问题描述】:

过去 3 天我一直在查看代码,最初的开发人员正在使用 String 类而不是 string 类来定义字符串。因此,当他们使用 IsNullOrEmpty 方法时,它被定义为 String.IsNullOrEmpty

我想知道的是,与 string.IsNullOrEmpty 相比,编译器如何处理 String.IsNullOrEmpty

使用 String.IsNullOrEmptystring.IsNullOrEmpty 有什么优势吗?

【问题讨论】:

    标签: c# .net compiler-construction


    【解决方案1】:

    它们都是一样的。

    string 是 C# 中 System.String 的关键字别名。

    唯一不同的是,使用 String 时,您需要在代码文件的开头使用System.String.IsNullOrEmptyusing System;

    【讨论】:

    • 为自己创建一个名为 StringUtilities 的静态类并定义一个名为 IsNullOrEmpty 的扩展方法: public static bool IsNullOrEmpty(this string @this) { return string.IsNullOrEmpty(@this); }。这允许您将其作为您正在检查的变量的方法来调用,例如弗雷德.IsNullOrEmpty().
    • 当您使用string.IsNullOrEmpty 而不是string. 时,它不会产生拳击吗?
    【解决方案2】:

    String 代表 System.String,它是一种 .NET Framework 类型。 string 是 System.String 在 C# 语言中的别名。两者都编译成System.String in IL(中间语言),所以没有区别。选择你喜欢的并使用它。如果您使用 C# 编写代码,我更喜欢字符串,因为它是 C# 类型别名,并且为 C# 程序员所熟知。

    (int, System.Int32) 等我也可以这么说。

    【讨论】:

      【解决方案3】:

      它们是一样的。

      就个人而言,我更喜欢使用String.IsNullOrEmpty。替代方案看起来不正确。选择Int32.Parse(...) 而不是int.Parse(...) 也是如此。当然,无论您选择哪种方法,都要保持一致。

      【讨论】:

      • 是的。 string.IsNullOrEmpty(...) 看起来我们正在尝试对关键字进行方法调用(当然取决于您的语法突出显示设置)。但我们真的在这里分裂头发。我坚持使用 String.IsNullOrEmpty,但如果我在同事的代码中看到 string.IsNullOrEmpty,我不会修复它。
      【解决方案4】:

      就个人而言,如果我使用 IsNullOrEmptyParse 等静态方法,我更喜欢使用 CTS 类型。但是在我阅读了 Lance Hunt (http://se.inf.ethz.ch/old/teaching/ss2007/251-0290-00/project/CSharpCodingStandards.pdf) 的文章.NET 的编码标准 后,特别注意使用内置 C# 本机数据类型与 .NET CTS 类型,我已经修改了我的意见。现在我使用相应的类型进行 declamation 和函数调用,如果可能的话,我使用别名。 考虑一下,intInt32 将来可能会不一样。

      【讨论】:

        【解决方案5】:

        由于 VS2019 建议简化使用结构而不是类,我会遵循它的建议,即使您必须在整体解决方案中保持一致。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-11-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-11
          相关资源
          最近更新 更多