诠释,我读了铸造将抛出一个异常,如果投不通过,并且有更好的语法来施放它会返回一个异常的空,而不是如果转换是不可能的。但我忘了它。任何进修? 谢谢。铸造在C#
铸造在C#
回答
我相信这是你要找的内容...
string s = "36";
int resultInt;
int.TryParse(s, out resultInt);
,如果它是从一个字符串起源,可以随时使用的TryParse()
if(!Int.TryParse(s, out i))
(handle non-int code here)
我认为你是指的是as
演员。但as
不能用于非参考类型,因此您不能执行int x = obj as int
。
为了解析int
或其他一些价值型,你可以使用类型特定trycast方法..
int x;
bool success = int.TryParse(someString, out x);
您可以使用“为”运营商在引用类型。但由于int可以为null,所以不能使用该运算符。所以对于字符串对象来说,你可以这样做:
object o = "";
string s = o as string;
但是不能用int来做同样的事情。
你想找的是as
所以int myCasted = myVar as int;
哪,如果你使用
int x = Convert.toInt32(string)
显然不会在非空值类型
这不会编译,不能在值类型上使用'As' – BrokenGlass 2011-03-08 20:04:26
它不适用于*不可为空的值类型*。 – 2011-03-08 20:57:58
@Eric Lippert,这实际上是我的意思,修正 – msarchet 2011-03-08 21:04:40
工作在C#它在内部调用int.tryparse作为convert方法是tryparse的静态包装类。我觉得它使用起来要干净些,尽管理论上它有点慢。
'Convert.ToInt32'仍然会导致无效输入。如果他正在寻找无异常行为,那不是。 – 2011-03-09 15:16:54
- 1. C++类铸造
- 2. C#铸造
- 3. Java的铸造和C++的铸造
- 4. 对象在C#铸造
- 5. 类型铸造在c#.net
- 6. 在C中铸造“div”#
- 7. 类型铸造在objective-c
- 8. 在C++模板铸造
- 9. 对象在C#铸造
- 10. 铸造C++问题
- 11. C#泛型铸造
- 12. C:铸造警告
- 13. C#铸造问题
- 14. C#铸造奇怪
- 15. 动态铸造C#
- 16. 混淆C++铸造
- 17. 对象C铸造
- 18. C#铸造枚举
- 19. 普通铸造VS在目标桥铸造 - Visual C
- 20. C++铸造运营商和传统的C铸造运营商
- 21. 在C:铸造警告在C:赋值整数从指针没有铸造
- 22. 在Java中的类型铸造/铸造
- 23. 铸造在Java
- 24. ASP.NET C#布尔型铸造
- 25. C#铸造性能影响
- 26. 铸造下的Objective-C
- 27. Objective-C安全铸造宏
- 28. C型铸造警告
- 29. C#铸造通用类型
- 30. C指针类型铸造
神圣的答案溢出! – BrokenGlass 2011-03-08 20:02:58