诠释,我读了铸造将抛出一个异常,如果投不通过,并且有更好的语法来施放它会返回一个异常的空,而不是如果转换是不可能的。但我忘了它。任何进修? 谢谢。铸造在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. 对象在C#铸造
- 4. 类型铸造在objective-c
- 5. 类型铸造在c#.net
- 6. C#铸造枚举
- 7. 混淆C++铸造
- 8. 对象C铸造
- 9. C#泛型铸造
- 10. 动态铸造C#
- 11. C#铸造奇怪
- 12. C++铸造运营商和传统的C铸造运营商
- 13. 在C:铸造警告在C:赋值整数从指针没有铸造
- 14. 在Java中的类型铸造/铸造
- 15. 铸造在Java
- 16. C#铸造性能影响
- 17. c#通用接口铸造
- 18. Objective-C安全铸造宏
- 19. 从LPVOID铸造结构 - C
- 20. 铸造的ExecuteScalar()结果C#
- 21. 这是C#铸造无用?
- 22. 与#如果铸造用C
- 23. ASP.NET C#布尔型铸造
- 24. c中的类型铸造#
- 25. C指针类型铸造
- 26. 对象铸造目标-c
- 27. cin类型铸造(C++)
- 28. 问题与C++铸造
- 29. C#铸造的MemoryStream对FILESTREAM
- 30. C#.net铸造问题
神圣的答案溢出! – BrokenGlass 2011-03-08 20:02:58