Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数组从Web服务返回到客户端控制台_C#_Arrays_Web Services - Fatal编程技术网

C# 将数组从Web服务返回到客户端控制台

C# 将数组从Web服务返回到客户端控制台,c#,arrays,web-services,C#,Arrays,Web Services,我试图使用我在c#中使用VisualStudio2010编写的Web服务返回Fibonacci数字序列数组。 这是我创建序列并将其存储在数组“Fibon”中以返回到客户端程序的函数 public class Service1 : System.Web.Services.WebService { [WebMethod] public long[] Fibonacci(int length) { long[] Fibon; Fibon =

我试图使用我在c#中使用VisualStudio2010编写的Web服务返回Fibonacci数字序列数组。 这是我创建序列并将其存储在数组“Fibon”中以返回到客户端程序的函数

 public class Service1 : System.Web.Services.WebService
 {
    [WebMethod]
    public long[] Fibonacci(int length) 
    {
        long[] Fibon;
        Fibon = new long [length]; 
        Fibon[0] = 0;
        Fibon[1] = 1;

        for (int i = 2; i < length; i++)
        {
            Fibon[i] = Fibon[i - 2] + Fibon[i - 1];
        }

        return Fibon;
    }
 }`
公共类服务1:System.Web.Services.WebService
{
[网络方法]
公共长[]斐波那契(整数长度)
{
长纤维;
Fibon=新长[长度];
Fibon[0]=0;
Fibon[1]=1;
for(int i=2;i
调用该函数的客户端程序如下所示:

 class Program
 {
    static void Main(string[] args)
    {
        Service1 webservice = new Service1();   
        Console.Out.Write("\nHow many number of the Fibonacci sequence do you want returned?\n");
        int Number = Convert.ToInt32(Console.In.ReadLine());
        long[] Sequence = new long[Number];
        Sequence = webservice.Fibonacci(Number);    // PROBLEM LINE ********
        Console.Out.Write("\nThe Sequence is \n\n");
        for (int i = 0; i <= Number; i++)
        { 
            Console.WriteLine(Sequence[i]);
        }
        Console.Out.Write(",  \n\nPress ENTER to return");
        Console.ReadLine();
    }
}
类程序
{
静态void Main(字符串[]参数)
{
Service1 webservice=newservice1();
Console.Out.Write(“\n要返回多少个斐波那契序列?\n”);
int Number=Convert.ToInt32(Console.In.ReadLine());
long[]序列=新的long[Number];
Sequence=webservice.Fibonacci(Number);//问题行********
Console.Out.Write(“\n序列为\n\n”);

for(int i=0;i在该行中不应该有错误,应该只在for循环中有问题:

class Program
 {
    static void Main(string[] args)
    {
        Service1 webservice = new Service1();   
        Console.Out.Write("\nHow many number of the Fibonacci sequence do you want returned?\n");
        var Number = Convert.ToInt32(Console.In.ReadLine());            
        var Sequence = webservice.Fibonacci(Number);    
        Console.Out.Write("\nThe Sequence is \n\n");
        for (int i = 0; i < Number; i++) // Fixed LINE ********
        { 
            Console.WriteLine(Sequence[i]);
        }
        Console.Out.Write(",  \n\nPress ENTER to return");
        Console.ReadLine();
    }
}
类程序
{
静态void Main(字符串[]参数)
{
Service1 webservice=newservice1();
Console.Out.Write(“\n要返回多少个斐波那契序列?\n”);
var Number=Convert.ToInt32(Console.In.ReadLine());
var序列=webservice.Fibonacci(数字);
Console.Out.Write(“\n序列为\n\n”);
对于(int i=0;i
我遵照你的建议,Peyman,解决方案成功了。我还不得不更改代码中的行

    int Number = Convert.ToInt32(Console.In.ReadLine());                                                                                                  
    long[] Sequence = new long[Number];
    Sequence = webservice.Fibonacci(Number);
从代码中选择建议的行

    var Number = Convert.ToInt32(Console.In.ReadLine());            
    var Sequence = webservice.Fibonacci(Number); 

代码现在运行并根据需要返回序列。非常感谢!!!

您真的确定您的控制台应用程序调用了
Service1.Fibonacci()
方法,如您的代码示例所示?您的控制台应用程序是否指向正确的服务?如果您说是,您是否已通过调试证明了这一点?尽管循环是错误的,并且存在其他奇怪的编码元素,但错误“无法隐式地将类型“int”转换为“long[]”您的解决方案未解决此问题。它解决了索引超出范围的异常。是的,我知道这一点,但正如我所说的,这一行没有错。我必须更改索引问题和代码中的其他几行,如下面的答案所示。谢谢你们的建议。