Vb.net 三元算子与赋值

Vb.net 三元算子与赋值,vb.net,Vb.net,我试图使用三元If运算符保存VB.NET项目中的唯一代码行,但被抛出: “指定的强制转换无效” 你的问题是 System.Data.SqlTypes.SqlDateTime.MinValue 及 返回不同的类型。这是我在不知道变量和返回类型的情况下所能给出的答案 总之,当您使用If(1,2,3)-2和3必须返回相同的类型时,您的问题是 System.Data.SqlTypes.SqlDateTime.MinValue 及 返回不同的类型。这是我在不知道变量和返回类型的情况下所能给出的答案 底

我试图使用三元
If
运算符保存VB.NET项目中的唯一代码行,但被抛出:

“指定的强制转换无效”

你的问题是

System.Data.SqlTypes.SqlDateTime.MinValue

返回不同的类型。这是我在不知道变量和返回类型的情况下所能给出的答案

总之,当您使用
If(1,2,3)
-2和3必须返回相同的类型时,您的问题是

System.Data.SqlTypes.SqlDateTime.MinValue

返回不同的类型。这是我在不知道变量和返回类型的情况下所能给出的答案


底线是,当您使用
If(1,2,3)
-2和3必须返回相同的类型System.Data.SqlTypes.SqlDateTime.MinValue的类型为System.Data.SqlTypes.SqlDateTime

如果必须猜测的话,Expiration.GetType必须是System.DateTime类型

添加castCDate(System.Data.SqlTypes.SqlDateTime.MinValue)

试试这个

_Expiration = If(info.GetString("IdentificationType").Trim = "",
    CDate(System.Data.SqlTypes.SqlDateTime.MinValue),
    info.GetValue("Expiration", Expiration.GetType))    

System.Data.SqlTypes.SqlDateTime.MinValue的类型为System.Data.SqlTypes.SqlDateTime

如果必须猜测的话,Expiration.GetType必须是System.DateTime类型

添加castCDate(System.Data.SqlTypes.SqlDateTime.MinValue)

试试这个

_Expiration = If(info.GetString("IdentificationType").Trim = "",
    CDate(System.Data.SqlTypes.SqlDateTime.MinValue),
    info.GetValue("Expiration", Expiration.GetType))    

例外情况是什么?我敢打赌
GetValue
实际上返回的是
DateTime
,而不是
SqlDateTime
。那么,,你应该调用
GetDateTime
而不是
GetValue
,你应该使用
DateTime.MinValue
或者将
SqlDateTime.MinValue
转换成
DateTime
。有什么例外吗?我敢打赌
GetValue
实际上返回的是
DateTime
,而不是
SqlDateTime
。在这种情况下,您应该调用
GetDateTime
而不是
GetValue
,并且应该使用
DateTime.MinValue
或者将
SqlDateTime.MinValue
转换为
DateTime
_Expiration = If(info.GetString("IdentificationType").Trim = "",
    CDate(System.Data.SqlTypes.SqlDateTime.MinValue),
    info.GetValue("Expiration", Expiration.GetType))