我有一行方法,将空字符串解析为string.Empty,我认为这可能对扩展方法有用 - 但我找不到一个有用的方法来实现它。.NET是否有一种将空字符串解析为String.Empty的方法?
我可以看到它有用的唯一方法是作为字符串类的静态方法,因为显然它不能归因于实例,因为实例为空,这会导致编译器错误。 [编辑:编译器错误是由于未初始化的变量,我误解了]
我想将其添加到辅助类,但这只是从发现性的角度增加了不必要的复杂性。
所以这个问题是两个部分,我想:
- 是否.NET框架已经内置在解决一个空字符串的String.Empty的方式是,我沿着某处错过常识办法?
- 如果它不 - 没有人知道一种方法来添加此方法作为字符串类的静态扩展吗?
干杯提前
编辑:
好吧,我想我应该已经多一点明确的 - 我已经清楚地知道空coallescing的,我是在一个地方使用此我有十几个字符串被检查用于计算散列码。你可以想象,12行代码紧密地跟在一起,都包含null coallescing语法,这是一个盲点,所以我将null coallescing操作移出了一个方法,让事情变得更容易。这是完美的,但是,这将是一个完美延伸到字符串对象:
int hashcode =
FirstValue.ResolveNull().GetHashCode()^
SecondValue.ResolveNull().GetHashCode()^
...
超过一打线比一个更容易阅读:
int hashcode =
(FirstValue ?? String.Empty).GetHashCode()^
(SecondValue ?? String.Empty).GetHashCode()^
...
我运行到编译器的问题时,我没有明确宣布我的字符串值作为空,但依靠隐:
string s;
但是,如果你明确地定义:
string s = null;
你可以很容易地拨打:
s.ResolveNull();
感谢所有为您的输入。
根据30秒内的6条回复,是的,常识。 :D – 2009-08-06 20:14:27
大声笑 - 这并不是说我错过了傻傻的笑话,我知道,为了这个特定的目的,它已经把它写成丑陋的。我想我应该已经更具体的我的问题:D – BenAlabaster 2009-08-06 20:25:05
我认为不能处理空字符串的代码是丑陋的:-P – 2009-08-06 20:30:31