webmethod int в строку по сумме списка - PullRequest
0 голосов
/ 05 марта 2012

Я пытаюсь получить сумму списка из веб-службы.

[WebMethod]
public string CalculateSum(List<int> listInt)
{
       int[] sum = listInt.ToArray();

        return sum; // error under sum on this line

}

Но я получаю сообщение об ошибке: невозможно преобразовать int в строку, это должно сработать?

Код клиента:

    public partial class Form1 : Form
    {
        List<int> listInt = new List<int>();

        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {

        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            listInt.Add(Convert.ToInt32(textBox1.Text));
            textBox1.Clear();
            listBox1.Items.Clear();
            for (int i = 0; i < listInt.Count; i++)
            {
                listBox1.Items.Add(listInt[i]);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            CalculateSumOfList.ServiceReference1.Service1SoapClient client = new CalculateSumOfList.ServiceReference1.Service1SoapClient();
            CalculateSumOfList.ServiceReference1.ArrayOfInt arrayOfInt = new CalculateSumOfList.ServiceReference1.ArrayOfInt();
            arrayOfInt.AddRange(listInt);
            int result = client.CalculateSum(arrayOfInt); //here
            label1.Text = Convert.ToString(result);


        }



    }
}

Я получаю ошибки с client.CalculateSum(arrayOfInt);

Ответы [ 2 ]

5 голосов
/ 05 марта 2012
[WebMethod]
public int CalculateSum(List<int> listInt)
{
    int sum = listInt.Sum();
    return sum; // error under sum on this line

}

Обратите внимание на возвращаемое значение вашей функции - вы объявляете, что она возвращает строку, а не целое число.

1 голос
/ 05 марта 2012

Вы можете использовать либо

 return sum.ToString();

, либо

return "" + sum;

Но сначала подумайте: должна ли функция, которая суммирует значения int, действительно возвращать строку?Кажется, в качестве int функции гораздо больше смысла:

public int CalculateSum(List<int> listInt)
{
    int sum = listInt.Sum();
    return sum;  // now matches the return-type of the method 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...