gpt4 book ai didi

vb.net - 选项严格类型和匿名类型不能一起使用吗?

转载 作者:行者123 更新时间:2023-12-02 21:05:41 26 4
gpt4 key购买 nike

我有一个生成匿名类型的 Linq 查询。但是,现在我想使用这个匿名类型的参数,但它似乎不起作用。

For Each obj As Object in Query
Dim row As DataRow = obj.parameter
...
Next obj

现在编译器会对表达式 obj.parameter 抛出错误:“Option Strict On 不允许后期绑定(bind)”。如果我理解正确的话,编译器不知道匿名类型的参数。我根据 Google 结果尝试了 Option Infer On(并删除了 As Object),但没有帮助。这似乎是有道理的,因为对我来说,这似乎总是一个不断扩大的转变。

是否有办法解决这个问题,或者我应该创建一个自定义类型?

最佳答案

声明匿名类型的代码(即 LINQ 查询的 Select 部分)必须与使用它的代码和 Query 使用相同的方法变量的声明必须具有推断类型。在将匿名类型转换为 Object 后,您无法访问其属性,因为没有可以将其转换为的命名类型。

因此,请确保您的 LINQ 查询(或者至少是 Select 进入新匿名类型的部分)采用相同的方法。例如。

Dim Query = From prod In products
Select prod.Name, prod.Price

For Each obj in Query
Dim name = obj.Name
...
Next obj

关于vb.net - 选项严格类型和匿名类型不能一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12196976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com