You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VB.Net中强制指定匿名类型的属性类型?

如何在VB.NET中强制指定匿名类型的属性类型

当然可以!在VB.NET里,你完全能直接在定义匿名类型时显式指定属性的类型——这是官方支持的语法,刚好就是你给出的示例那种写法。

有时候VB的类型推断可能不会给出你想要的结果(比如Nothing默认会被推断为Object类型),这时候显式指定类型就非常有用。比如你想要某个属性是可空的Decimal类型,而不是默认推断的Object,就可以像这样写:

Dim anonType = New With {
    .Property1 = 10, ' 这里会被自动推断为Integer类型
    .Property2 As Decimal? = Nothing ' 显式指定为可空Decimal类型
}

再举几个实用的例子,帮你更好理解:

  • 把整数强制指定为Long类型,避免溢出风险:
    Dim userInfo = New With {
        .UserId = 1001, ' 推断为Integer
        .AccountNumber As Long = 9876543210 ' 显式指定为Long
    }
    
  • 指定可空的引用类型(比如String?),明确表示这个属性可以为Nothing:
    Dim product = New With {
        .Name = "无线耳机",
        .SerialNumber As String? = Nothing ' 允许序列号为空
    }
    

需要注意的是,匿名类型的属性本身仍然是只读的,显式指定类型并不会改变这个特性——你没法在创建匿名类型实例后修改这些属性的值。

内容的提问来源于stack exchange,提问作者kexx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:33:47