我正在将一些C#代码从另一个项目转换为VB.Net,但以下代码引发了错误
Dim obj As System.Collections.ArrayList()
obj = HTMLWorker.ParseToList(New StreamReader("../sample.htm",encoding.Default),
styles)
错误是'类型Systems.Collections.Generic.List()的值无法转换为'Systems.Collections.Arraylist()'
原始C#代码是
System.Collections.ArrayList obj;
obj = HTMLWorker.ParseToList(new StreamReader("../sample.htm",Encoding.Default),
styles);
什么是正确的VB代码?
答案 0 :(得分:4)
我认为这与C#/ VB无关。在我看来
最简单的解决方案是使用类型推断:
// C#
var obj = HTMLWorker.ParseToList(new StreamReader("../sample.htm", Encoding.Default), styles);
'' VB
Dim obj = HTMLWorker.ParseToList(New StreamReader("../sample.htm", Encoding.Default), styles)
请注意,要使用此功能,您需要在项目属性中将“Option Infer”设置为“On”。
如果您不想使用类型推断,则需要使用正确的类型声明obj
。要确定正确的类型,请查看ParseToList
的文档或在键入HTMLWorker.ParseToList(
时阅读IntelliSense提供的信息。例如,如果ParseToList返回IElement
s的通用List,则正确的语法为:
Dim obj As Systems.Collections.Generic.List(Of IElement)
obj = ...