有时ToString看起来很丑陋。在下面的例子中是否有更聪明的东西替换().ToString()?
string value;
int i;
...
value = (1 + i).ToString();
其次,你更喜欢什么?
value = "0";
或
value = (0).ToString();
我知道我更喜欢“0”的可读性,但另一方面它并不像第二种那样代表值。现在,如果有某种ToString运算符......
挑剔,但我现在很无聊。 ;)
附录
这是我写的代码,让我问上面的问题。
List<SelectListItem> result = new List<SelectListItem>(1 + items.Count);
result.Add(new SelectListItem { Text = string.Empty, Value = "0" });
for (int i = 0; i < items.Count; ++i)
{
result.Add(new SelectListItem {
Text = items[i],
Value = (1 + i).ToString()
});
}
答案 0 :(得分:4)
().ToString()
是第一件做事最简洁的方法。任何熟悉表达方式工作的人都不应该在阅读它时遇到任何麻烦。
做(0).ToString()
和做"a".ToCharArray()
一样愚蠢。如果您有所需值的文字,请使用它。
答案 1 :(得分:3)
事实上,我总是使用Convert.ToString(i + 1)
,而不是(i + 1).ToString()
。前者是无效的。
我永远不会使用value = (0).ToString()
!
修改强>
由于我真的很喜欢这个解决方案,我会尝试更好地保护它:
优点:
缺点:
object.ToString()
)。答案 2 :(得分:1)
如果您需要将0
表示为整数,请不要使用字符串,请使用整数。
至于将计算结果转换为字符串:
var res = string.Format("{0}", i + 1);
您不需要将()
与字面整数一起使用 - 0.ToString()
有效。
答案 3 :(得分:1)
ToString可能对本地化有用 - &gt; (1000).ToString("N")
。否则,我不明白为什么要使用(0).ToString()
代替"0"
。
答案 4 :(得分:1)
1 + i
是完全错误的。数学家从不说 1 + n ,他们说 n + 1 。但这只是我的偏好。在技术上很难回答那些意见问题。
答案 5 :(得分:0)
我一直在使用string.Format("{0}", 1 + i)
。
我宁愿选择"0"
,为什么要拨打额外的方法?