方法可以';t返回值,错误:无法在C#、ASP.NET中转换类型

本文关键字:ASP NET 类型 转换 错误 返回值 方法 | 更新日期: 2023-09-27 17:59:53

我有一个应该返回一组数据的方法。但最后当返回数据时,错误显示为:"无法将类型'WebApplication1.Webreference13.DT_value[]'转换为'WebApplication1.Webreference 13.DT_value"

public class InputHelp
{
    public DT_Value Priority()
    {
        WebReference13.DT_SM_InputHelp_Request IncomingtypeReq = new WebReference13.DT_SM_InputHelp_Request();
        WebReference13.DT_SM_InputHelp IncomingTypeResp;
        WebReference13.SI_CreateSM_OBService _proxy1 = new WebReference13.SI_CreateSM_OBService();
        CookieContainer cookie = new CookieContainer();
        _proxy1.Credentials = new NetworkCredential("xxxx", "xxxxx"); // use credential to acess to the SAP system
        _proxy1.CookieContainer = cookie;
        IncomingtypeReq.Mode = "Create";
        IncomingtypeReq.Language = "EN";
        IncomingtypeReq.OptionalText1 = "ZLFN";
        IncomingtypeReq.OptionalText2 = "";
        IncomingtypeReq.WSCallID = "223424dgdf";
        IncomingTypeResp = _proxy1.SI_GetInputHelp(IncomingtypeReq);
        DT_Value[] ab=new DT_Value[10];
        ab= IncomingTypeResp.Priority;
        return ab;  // error is here
    }

如果你能在这个问题上帮助我,我将不胜感激。

方法可以';t返回值,错误:无法在C#、ASP.NET中转换类型

将方法签名更改为

public DT_Value[] Priority(){...}

还有

    DT_Value[] ab=new DT_Value[10];
    ab = IncomingTypeResp.Priority; //<-- something doesn't look right here.

如果IncomingTypeResp.PriorityDT_Value[]类型,那么你可以只做

 DT_Value[] ab = IncomingTypeResp.Priority;

您已经将ab声明为DT_Value的数组,但该方法返回DT_Value(单个DT_Value实例)。

如果您希望Priority返回一个数组,您应该将声明更改为:

public DT_Value[] Priority()

您将ab定义为DT_Value的数组,但方法约定只返回一个DT_Value。如果您只想返回第一个值(如果存在),请将最后一行设置为

return ab[0];

像下面这样声明,可能会对您有所帮助:

DT_Value ab=new DT_Value;