您尝试将类型转换为另一种类型,这些类型可能无法包含值,如 a LongInteger,而类型检查开关(Option Strict Statement)设置为 On。
这种类型的 转换称为缩小转换,在运行时可能会失败。 因此, Option Strict On 禁止隐式缩小转换。
错误 ID: BC30512
更正此错误
确定是否存在从
<type1>任何类型的转换到<type2>。 如果两者都是 Visual Basic 基本类型,或者两者都是类的实例,则通常可以通过在 “扩大和缩小转换”中咨询表来做出此决定。如果只有收缩转换存在
<type1>,<type2>则应使用显式强制转换。 如果转换失败, CType 函数 和 DirectCast 运算符 关键字将引发运行时异常。 TryCast 运算符关键字仅适用于引用类型,如果转换失败,则返回 Nothing。如果存在缩小转换,并且程序可以容忍运行时失败,或者确信运行时失败是不可能的,则可以在源代码的开头指定
Option Strict Off。 但是,你仍应在 Try... 中将转换括起来 ...抓住。。。最后,语句 阻止以避免意外的结果或提前终止程序。如果不存在从
<type1>中转换到<type2>的转换,则必须重新评估程序逻辑。 可以编写代码,这些代码可将值赋给<type2>与预期值相对应的值<type1>。如果不存在从
<type1>类型到<type2>其他类型的转换,并且其中一种类型是定义的类或结构,则可能能够定义从该类型的转换运算符到另一种类型。 有关详细信息,请参阅 “如何:定义转换运算符”。在所有情况下,作为一般准则,应避免使用缩小转换,除非可以在块中
Catch捕获故障并有效地处理故障。