我正在尝试使用Siemens Openness的Vb.Net程序在Siemens TIA Portal项目中找到一个文件夹。
如果我运行代码:
Dim currFolder 'Define the current folder without a type.
currFolder = emptySoftware.BlockGroup
For Each folderName As String In path.Split({"\"}, StringSplitOptions.RemoveEmptyEntries).ToList()
currFolder = currFolder.Groups().Where(Function(x) x.Name = folderName).Single()
Next
我收到错误
公共会员'其中' on type' PlcBlockUserGroupComposition'找不到
但是类型SW.Blocks.PlcBlockUserGroup
确实实现了IEnumerable接口。
此外,如果我运行以下代码:
Dim currFolder 'Define the current folder without a type.
currFolder = emptySoftware.BlockGroup
For Each folderName As String In path.Split({"\"}, StringSplitOptions.RemoveEmptyEntries).ToList()
Dim tmpFolder = CType(currFolder, SW.Blocks.plcBlockGroup)
Dim tmp = tmpFolder.Groups
currFolder = tmpFolder.Groups().Where(Function(x) x.Name = folderName).Single()
Next
我没有收到任何错误,即使我的调试器显示tmp
类型为SW.Blocks.PlcBlockUserGroupComposition
这是为什么?是什么让第二个片段起作用,第一个片段没有?
我更喜欢第一个代码段的原因是因为这可以让我对不同类型使用相同的代码,这些代码都实现了Groups
属性和Where
函数。