【问题标题】:How to set the value of string to null如何将字符串的值设置为null
【发布时间】:2017-08-16 19:33:22
【问题描述】:

我知道我可以像这样设置 null

string val = null;

但我想知道可以将其设置为 null 的其他方法。有没有像String.null 这样的函数可以使用。

【问题讨论】:

  • 为什么需要另一种方式来做到这一点?
  • 为什么 string val = String.null 会更好.. null 与字符串关系不大
  • 您是指将s 设置为nullstatic void StringUtils.SetNull(out string s)?那将是otherkill恕我直言。分配有什么问题?
  • @dash 说我把它改成了一些东西,然后把它设置回 null...
  • @Ajax3.14 - 我只是将它设置为null,就像你所做的那样,甚至是String.Empty。然后,如果我在乎,至少我可以检查String.IsNullOrEmpty(val);

标签: c# c#-4.0


【解决方案1】:

我觉得你看得很远String.Empty

string val = String.Empty;

更新: TheFuzzyGigglercmets 值得一提:

string 设置为empty 而不是null 要好得多。避免 以后例外。如果你必须读写大量的字符串 您将到处都有null 值异常。或者你会有一个 大量的if(!string.isNullorEmpty(string)) 很烦人

【讨论】:

  • 打败我!如果 OP 读到这个.. 我发现将字符串设置为空而不是 null 会更好.. 以避免以后出现异常。如果您必须读取和写入大量字符串,则到处都会出现空值异常。或者你会有大量的 if(!string.isNullorEmpty(string)) 令人讨厌。
  • 感谢道具。很高兴我能帮上忙。我会让 Asif 拿下代表的荣耀。 =)
  • Null 和 String.Empty 当然不能互换。如果您的系统认为它们相同,那么请务必使用 Empty,但它们并不相同。你不能随便使用一个,你可以使用另一个。用户输入空字符串和用户不输入任何内容是有区别的
【解决方案2】:

您也可以使用默认关键字。

string val = default(string);

这是关于默认关键字的另一个 SO 问题: What is the use of `default` keyword in C#?

【讨论】:

  • ...与string val = (string)null; 相同,即类型化的空引用。
  • @Wormbo - 正确。不过,使用 default 的好处在于它可以同时用于值类型和引用类型。
【解决方案3】:

null 不是一个特殊的字符串值(String.Empty 代表 ""),而是一个用于空引用的通用对象字面量。

【讨论】:

    【解决方案4】:

    显然,另一种设置为 null 的方法是分配返回 null 的函数的结果:

    string SomeFunctionThatReturnsNullString() {return null;}
    
    string val = SomeFunctionThatReturnsNullString();
    

    【讨论】:

      【解决方案5】:

      将其分配给该值将使其为空,(选择正确的 sql 数据类型,此处为双精度)

          System.Data.SqlTypes.SqlDouble.Null
      

      【讨论】:

        【解决方案6】:

        根据您的应用程序,您可以使用string.Empty。我总是对初始化为null 持怀疑态度,因为垃圾收集器很棒,但并不完美,如果以某种垃圾收集器无法检测到的方式使用,可能会将您的字符串标记为垃圾收集(尽管这不太可能) .

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-06
          • 1970-01-01
          • 2021-04-02
          • 1970-01-01
          • 1970-01-01
          • 2019-10-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多