簡體   English   中英

使用C#,如何使用參數訪問VB類的默認屬性的getter / setter?

[英]Using C#, how can I access the getter/setter of a VB class's default property with parameter?

我正在使用DLL,無法更改。 DLL是使用VB.NET編寫的。 有一個類,其中包含以下屬性:

Default Property MyProperty(Name As String) As SomeObject
     //getter & setter
End Property

使用VB.NET,我將像這樣訪問這些值

Dim myVar As String = MyClass.MyProperty("a property name").Value

如何使用C#訪問同一屬性? 我在這里找到了類似情況的答案。 但是,我需要將此概念應用於字符串以外的其他東西。

到目前為止,我已經嘗試過

String returnValue = MyClass.get_MyProperty("a property name").Value

這會導致生成錯誤:

'MyClass.this[string].get': cannot explicitly call operator or accessor

在VB.NET中,具有參數的屬性,例如...

Public Class MyClass
    Public Property MyProperty(param as String) as String
        //Getter
        //Setter
End Class

可以使用對VB.NET DLL的程序集引用在C#中進行訪問,例如...

MyClass classInstance = new MyClass();
classInstance.set_MyProperty("param", "value");
String var = classInstance.get_MyProperty("param");

VB.NET屬性作為C#中的方法公開。 但是,通過將Default關鍵字添加到VB.NET屬性,可以更改該屬性的顯示方式。

Public Class MyClass
    Default Property MyProperty(param as String) as String
        //Getter
        //Setter
End Class

當存在Default關鍵字時,該屬性隨后在C#中公開為索引器。 因此,您可以像以下方式訪問此屬性:

MyClass classInstance = new MyClass();
classInstance["param"] = "value";
String var = classInstance["param"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM