0

我有一个第三方 dll 添加到我的 Web 应用程序中。其中一个函数看起来像这样

public InterestCategory[] gvc(string st)
{
    object[] results = this.Invoke("getit", new object[] {
                    st});
    return ((InterestCategory[])(results[0]));
}

如您所见,该函数返回InterestCategory[]。当我检查 (GoToDefinition) InterestCategory 时,我可以看到这个

  public partial class InterestCategory
{
    private string descriptionField;
    public string Description
    {
        get
        {
            return this.descriptionField;
        }
        set
        {
            this.descriptionField = value;
        }
    }
}

现在在我的代码中,我试图像这样调用这个函数

  API.InterestCategory IC = new API.InterestCategory();
  IC  =    api.gvc(st);

它会抛出这样的错误

 Cannot implicitly convert type 'API.InterestCategory[]' to 'API.InterestCategory'  

谁能告诉我调用这个函数的正确程序是什么

4

5 回答 5

2

IC应该是一个数组Api.InterestCategory。相反,您将变量声明为Api.InterestCategory. 尝试:

Api.InterestCategory[] IC = api.GetValidInterestsCategories(securityToken);
于 2013-07-30T10:41:48.643 回答
2

该方法返回一个数组,因此您必须将结果分配给正确类型的变量:

InterestCategory[] ics = api.gvc(securityToken);
于 2013-07-30T10:42:07.817 回答
2

您为变量指定了错误的类型。InterestCategory你已经告诉编译器你想在函数返回一个数组时创建一个类型的变量, InterestCategory[].

将您的代码更改为此,它应该可以正常工作:

API.InterestCategory[] ICs;
ICs = api.gvc(securityToken);
于 2013-07-30T10:42:14.810 回答
1

API.InterestCategory IC = new API.InterestCategory();

所以打字

IC = api.gvc是错误的,因为 ICInterestCategory不是InterestCategory[]

尝试:

var IC = api.gvc(securityToken)
于 2013-07-30T10:41:58.693 回答
0

您好,您所做的一切都是正确的,但是由于返回类型和要存储它的变量不匹配而导致您遇到的问题..我不知道您为什么无法理解这个问题..它属于基础知识编程..所以这样做。

api.InterestCategory[] ic = api.gvc(securityToken);
于 2013-07-30T10:44:40.970 回答