- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试将 Object obj
转换为类型 T
时,如果无法转换,则说明有问题。
在我转换对象之后,我将寻找使用转换对象的方法。
相反,我会期望在我将要转换它的地方得到异常,而不是说我将在哪里使用该对象。
从这个意义上来说,使用DirectCast
而不是TryCast
更好吗?或者我是否错过了使用 TryCast
的其他意义?
最佳答案
(对于 C# 开发人员来说,TryCast
类似于“as”,DirectCast
相当于普通转换。正如 Mike 在评论中指出的那样,“as”有效对于可为 null 的值类型,但 TryCast
则不然。)
如果该值确实应该是 T
,那么 DirectCast
确实是正确的方法 - 它会快速失败,并出现相应的错误。
TryCast
是合适的。例如,要获取容器中的所有 Button 控件,您可以遍历控件集合并尝试将每个控件强制转换为 Button。如果它有效,你就用它做一些事情 - 如果它不起作用,你就继续前进。 (使用 LINQ,您只需使用 OfType
即可达到此目的,但您明白我的意思...)
根据我的经验,直接强制转换比 TryCast
更合适 - 尽管使用泛型时我发现自己的强制转换比以前要少得多。
关于vb.net - 为什么使用 TryCast 而不是 DirectCast?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/385714/
我试图将字符串转换为 double ,但我不希望它抛出异常,而是返回一些值。我找到了 TryCast 函数,但似乎我没有正确使用它。我试试 TryCast(string, Double)它说“Doub
Table1有数据要导入Table2。 Table1 仅包含 varchar 字段,但它们将被强制转换为要导入到 Table2 中的任何字段的类型。 数据必须一次导入一行,所以我可以捕获异常以找出哪些
如何将以下vb代码转换成c#? Dim request As HttpWebRequest = TryCast(WebRequest.Create(address), HttpWebRequest)
当我尝试将 Object obj 转换为类型 T 时,如果无法转换,则说明有问题。 在我转换对象之后,我将寻找使用转换对象的方法。 相反,我会期望在我将要转换它的地方得到异常,而不是说我将在哪里使用该
自从我在 2005 年从 VB6 迁移到 VB.NET 以来,我一直在使用 CType 从一种数据类型转换为另一种数据类型。我这样做是因为它打字速度更快,以前存在于 VB6 中,而且我不知道为什么我必
我根本不明白如何在我的代码中使用 TryCast,但我需要使用它来验证用户输入。我在这里进行了各种搜索并查看了各种问题,但似乎没有人真正说如何使用它,而且 MSDN 网站似乎根本没有帮助。 F
这个问题已经有答案了: 已关闭13 年前。 Possible Duplicate: Why use TryCast instead of DirectCast? 我想了解TryCast和DirectC
我很惊讶我们在 TypeScript Docs 中没有看到太多关于转换的信息.尝试在 TypeScript 中创建一个简单的 tryCast 函数,类似于我们在 .Net 中的函数。所以基本上,尝试转
我发现 .NET 4.0/VS 2010 中 TryCast 的这种行为相当困惑。 根据我的理解,TryCast 的工作方式类似于 DirectCast,但如果无法进行强制转换,则将返回 Nothin
我如何将 varchar 参数转换为日期时间,如果转换失败,则默认使用 GetDate()?我试图将它放在 Try/Catch 中,但显然这在 UDF 中不起作用。简单地检查日期时间是否为空也不起作用
我有一个 LINQ 查询来检索整数列的最大值。该列在数据库中定义为 NOT NULL。但是,在 SQL 中使用 MAX 聚合函数时,如果查询没有返回任何行,您将得到 NULL 结果。 这是我针对 No
我是一名优秀的程序员,十分优秀!