XXX不包含定义,也不包含扩展方法

时间:2011-04-07 12:44:05

标签: c#-4.0

我需要从VS2010 C#项目访问第三方非托管DLL的某些方法和属性。在我将DLL添加到引用之后尝试访问它时,一个属性特别“消失”。我正在使用MS VS2010,目标平台是XP SP3 x86。

在.NET VB中,Item属性显示为

Item([Object], [Object]) As Object 

ReadOnly Default Property Item(Optional ByVal Name As Object = Nothing, Optional ByVal Index As Object = Nothing) As Object   

我可以毫无问题地使用它。 但是,在C#中,此属性消失,我能找到的最接近的属性变为

this[[object], [object]]  

dynamic this[[object Name = System.Type.Missing], [object Index = System.Type.Missing]] { get; }

如何在C#项目中访问此属性?感谢。

2 个答案:

答案 0 :(得分:2)

VB.NET中的Item属性是C#中的索引器。 因此,以下VB.NET和C#代码是等效的:

/* VB.NET */
yourObject.Item(o1, o2)

/* C# */
yourObject[o1, o2];

答案 1 :(得分:0)

这是indexer,可以像这样访问。

var yourObj = new SomeObject();
var item = yourObj[value1,value2];

换句话说,您只需在对象变量本身之后使用[]括号,而不是Item()