
我使用TryCast一段时间,因为我明白,有时铸造可能失败。然而我不能得到CType和DirectCast之间的区别。
任何人都可以告诉我在简单的英语中有什么区别两个区别(CType和DirectCast)?添加在哪里使用的例子将是有益的。
谢谢。
TryCast和DirectCast是直接映射到CLR支持的转换 *** 作符。它们可以快速将基本类型的对象转换为派生类型或取消类型值类型的值。 DirectCast在不可能转换时抛出异常,TryCast如果失败则返回nothing。你通常希望DirectCast捕获编程错误。CType允许转换的超集,CLR皱眉的。我可以想到的最好的例子是将字符串转换为数字或日期。例如:
Dim obj As Objectobj = "4/1/2010"Dim dt As DateTime = CType(obj,DateTime)
如果选项严格打开有效,您必须使用。如果它是关闭,那么你可以直接做:
Option Strict Off... Dim dt As DateTime = obj
非常方便,当然和VB.NET的一部分作为一种动态类型语言。但不是没有问题,那个日期是独角兽日在stackoverflow.com但将是一天在一月英国人进入字符串。意外的转换是CLR不允许这些直接的原因。显式,从来没有惊喜的转换看起来像这样:
Dim dt As DateTime = DateTime.Parse(obj.ToString(),_ System.Globalization.CultureInfo.GetCultureInfo("en-US").DateTimeFormat) 是否应该购买Try / DirectCast vs CType vs显式转换是一个个人选择。如果你现在编程与Option Strict On,那么你应该肯定开始使用Try / DirectCast。如果你喜欢VB.NET语言,因为你喜欢动态类型的方便,那么不要犹豫保持在CType。
总结以上是内存溢出为你收集整理的vb.net – 使用DirectCast,CType,TryCast来投射DataTypes全部内容,希望文章能够帮你解决vb.net – 使用DirectCast,CType,TryCast来投射DataTypes所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)