【发布时间】:2012-04-04 14:24:24
【问题描述】:
我有一个接收字符串参数并将它们转换为整数的函数。
为了安全转换,使用 int.TryParse()。
public IEnumerable<object> ReportView(string param1, string param2)
{
int storeId = int.TryParse(param1, out storeId) ? storeId : 0;
int titleId = int.TryParse(param2, out titleId) ? titleId : 0;
IEnumerable<object> detailView = new Report().GetData(storeId, titleId);
return detailView;
}
函数调用ReportView(“2”,”4”)--> int.Tryparse成功解析数字
函数调用 ReportView(“2.00”,”4.00”) --> int.TryParse 解析数字失败
为什么?有什么想法吗?
@Update
对不起,伙计们,我的概念是错误的。我是 c# 的新手,我认为 Int.TryParse() 会返回整数部分并忽略小数。但它不会,甚至 Convert.ToInt32("string")
谢谢大家。
【问题讨论】:
-
您还应该指定一种文化。
-
我不明白为什么这被否决了。这个问题显然是一个初学者问题,但它很清楚,而且表述得相当好。
-
@moguzalp 人们在提问时是否应该因为不知道某事而被否决?
-
@moguzalp:我打赌等效的解析代码可以在多种语言中使用。我很高兴它在 C# 中不像那样工作......但对于新手来说,它并不像你或我认为的那样不言而喻。
-
在编写此代码时,我认为 int.TryParse 会返回整数部分并忽略小数。谢谢大家,这是一个错误。