类型变量未在vb.net中定义
我在C#中找到了一个例子,据我所知,VB.NET中除了“var”之外别无选择。我试图创建一个datatable,它将根据调用此函数的代码中的LINQ命令进行填充。我一直在寻找解决方案,但找不到任何有效的方法。如果您能为我提供帮助,我将不胜感激。请注意,我同时启用了Option Strict和Option推断类型变量未在vb.net中定义,vb.net,datatable,Vb.net,Datatable,我在C#中找到了一个例子,据我所知,VB.NET中除了“var”之外别无选择。我试图创建一个datatable,它将根据调用此函数的代码中的LINQ命令进行填充。我一直在寻找解决方案,但找不到任何有效的方法。如果您能为我提供帮助,我将不胜感激。请注意,我同时启用了Option Strict和Option推断 Private Shared Function ToDataTable(rows As List(Of DataRow)) As DataTable Dim table As New
Private Shared Function ToDataTable(rows As List(Of DataRow)) As DataTable
Dim table As New DataTable()
table.Columns.Add("Title")
table.Columns.Add("Console")
table.Columns.Add("Year")
table.Columns.Add("ESRB")
table.Columns.Add("Score")
table.Columns.Add("Publisher")
table.Columns.Add("Developer")
table.Columns.Add("Genre")
table.Columns.Add("Date")
For Each row As var In rows
table.Rows.Add(row.ItemArray)
Next
Return table
End Function
C#使用'var'进行隐式类型化-VB使用选项inferon并省略类型。
VB等效物为:
Option Infer On
...
For Each row In rows
table.Rows.Add(row.ItemArray)
Next row
C#使用'var'进行隐式类型化-VB使用选项inferon并省略类型。
VB等效物为:
Option Infer On
...
For Each row In rows
table.Rows.Add(row.ItemArray)
Next row
标记好你的问题,在这种情况下没有C#问题。您的问题是您没有在foreach语句上编写实际类型。这将解决它:
For Each row As DataRow In rows
table.Rows.Add(row.ItemArray)
Next
标记好你的问题,在这种情况下没有C#问题。您的问题是您没有在foreach语句上编写实际类型。这将解决它:
For Each row As DataRow In rows
table.Rows.Add(row.ItemArray)
Next
VB等价物只是
Dim
,没有任何强类型
Dim sName = "John Henry"
在本例中,编译器推断类型字符串
(当选项推断
设置为On
)
在您的示例中,您可以省略
As var
部分。编译器将推断类型DataRow
VB等价物只是Dim
,没有任何强类型
Dim sName = "John Henry"
在本例中,编译器推断类型字符串
(当选项推断
设置为On
)
在您的示例中,您可以省略As var
部分。编译器将推断类型DataRow
。NET已具有该类型的扩展名:
Dim table As DataTable = rows.CopyToDataTable
.NET已具有该扩展:
Dim table As DataTable = rows.CopyToDataTable
As
需要像DataRow这样的实际类型,在本例中,C#中的var
只是意味着“让编译器自动为我在这里输入正确的类型”。我不确定VB是否有一个等价的类型,但你可以用实际的类型名替换它。As
需要一个实际的类型,比如C中的DataRow,这里的var
,意思是“让编译器自动为我在这里输入正确的类型”。我不确定VB是否有等效项,但您可以用实际类型名称替换它。正如“var”允许您不指定实际类型一样,VB允许使用选项inferon+类型省略。正如“var”允许您不指定实际类型一样,VB允许使用选项inferon+类型省略。您丢失了something@T.S.-是的,我想象我是:-)你可以想象你想要的一切,但如果没有选项,推断你的代码将无法按你的方式工作expect@T.S.-这是Visual Studio的默认设置。如果它关闭了,那是因为你把它放在那里了。记住在所有的对话中都要友好:-)“VisualStudio默认”-这方面几乎没有变量。只有当缺少特定版本的VS和特定版本的项目时,它才是默认值something@T.S.-是的,我想我是:-)你可以想象你想要的一切,但是没有选项expect@T.S.-这是Visual Studio的默认设置。如果它关闭了,那是因为你把它放在那里了。记住在所有的对话中都要友好:-)“VisualStudio默认”-这方面几乎没有变量。只有当存在特定版本的VS和特定版本的Project时,它才是默认值