虽然我试图将add方法的返回值转换为字符串,但它没有在console中返回任何值。而我删除了tostring方法它返回value.if我在控制台中显示的双引号中写入任何字符。 我在调用tostring方法时发生了什么? 如果我没有把任何双引号作为参数,它显示编译时错误,如(指定字符串的文化) 在将int转换为字符串时指定文化的目的是什么? 我想我可以通过调用tostring方法将整数值转换为字符串,为什么我不能在这种情况下进行转换?
private static int Add(int x,int y)
{
return x+y;
}
static void Main(string[] args)
{
Console.WriteLine(Add(23,54).ToString(""));
Console.ReadKey();
}
感谢。
答案 0 :(得分:3)
答案 1 :(得分:3)
一切都与实施有关;
如果format为null 或空字符串(""),则返回此值 实例使用通用数字格式说明符格式化(" G")。
这就是.ToString("")
等于.ToString()
的原因,因为
ToString()方法格式化默认的Int32值(" G",或者 general)格式化使用当前的NumberFormatInfo对象 培养
我尝试使用.ToString("")
格式化所有文化格式,无文化返回null
或空字符串。
foreach (var c in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
if((77).ToString("G", c) != "77")
Console.WriteLine (c.Name);
}
蓝线可能有一个插件(可能是ReSharper)警告你使用另一个以CultureInfo
为参数的重载。
答案 2 :(得分:0)
只需将您的文化字符串指定为string.empty
即可 Console.WriteLine(Add(23,54).ToString(string.Empty));
Console.ReadKey();
文化名称:“”(空字符串)
文化标识符:0x007F
语言 - 国家/地区:不变文化
http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo%28v=vs.71%29.aspx
string.Empty是一个只读字段,而“”是编译时常量。有些地方表现不同。