gpt4 book ai didi

c# - .NET 是否有办法将空字符串解析为 String.Empty?

转载 作者:太空狗 更新时间:2023-10-29 20:43:22 24 4
gpt4 key购买 nike

我有一个将空字符串解析为 string.Empty 的单行方法,我认为它可能作为一种扩展方法很有用 - 但我找不到一种有用的方法来实现它。

我认为它有用的唯一方法是作为字符串类的静态方法,因为显然它不能归因于实例,因为实例为 null,这会导致编译器错误。 [编辑:编译器错误是由于未初始化的变量,我误解了]

我考虑过将它添加到辅助类中,但从可发现性的角度来看,这只会增加不必要的复杂性。

所以我想这个问题分为两部分:

  1. .NET 框架是否具有将空字符串解析为 string.Empty 的内置方法,这是我在此过程中遗漏的常识?
  2. 如果没有 - 有没有人知道将此方法添加为字符串类的静态扩展的方法?

提前干杯

编辑:

好吧,我想我应该更清楚一点——我已经很清楚空合并,我在一个地方使用它,我有十几个字符串被检查以计算哈希码。

正如您所想象的那样,12 行代码彼此紧挨着,并且都包含空合并语法,这很碍眼,因此我将空合并操作移到了一个方法中,以使事情看起来更容易。这是完美的,但是,它将是字符串对象的完美扩展:

int hashcode =
FirstValue.ResolveNull().GetHashCode() ^
SecondValue.ResolveNull().GetHashCode() ^
...

十几行比​​以下更容易阅读:

int hashcode =
(FirstValue ?? String.Empty).GetHashCode() ^
(SecondValue ?? String.Empty).GetHashCode() ^
...

当我没有明确地将我的字符串值声明为 null 而是依赖于隐式时,我遇到了编译器问题:

 string s;

但是,如果您明确定义:

string s = null;

你可以很容易地调用:

s.ResolveNull();

感谢大家的参与。

最佳答案

我不认为有任何内置的东西。我的第一个想法,也是我经常做的,是使用合并运算符:

string s = null;
string x = s ?? string.Empty;

关于c# - .NET 是否有办法将空字符串解析为 String.Empty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1241112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com