使用2个组合框形成GUI以检查web方法中的bool数组

时间:2013-10-23 03:39:48

标签: c# combobox webmethod

嗨我很难找到一种方法来检查webmethod,看看组合框中的选定位置是否为false。组合框用于选择码头和系泊设备。在阵列中,tru是假的是免费的。(这就是我希望会发生的事情)。这里有一些网络方法我已经完成了。

编辑我需要编写一个从2个组合框调用2个整数的webmethed,然后检查数组中的那个插槽是否空闲。如果它不是免费的,请选择下一个可用的插槽。阵列用于码头和系泊设备。

[WebMethod]
    public ReserveMooringResponse getMooring(ReserveMooringRequest req)
    {
        var resv = new ReserveMooringResponse();

        int pier = 0;
        int mooring = 0;
        bool checkSeat = false;
        string firstName;

        bool[,] mooringArray = new bool[,] {{ true, false, true, false, true}, //pier 1
                                        {true, false, false, true, true}, //pier 2
                                        {false, true, true, false, true}, //pier 3
                                        {false, false, true, false, true}, //pier 4
                                        {true, false, false, true, true},  //pier 5
                                        {true, true, false, false, false}}; //pier 6


        return resv;
    }

1 个答案:

答案 0 :(得分:0)

我希望我得到你正在做的事情的要点。基本上,您需要一个递归来测试您的阵列的码头和系泊。如果为true,则保留系泊,如果为假,则继续寻找开放系泊。

一些假设:

  • ReserveMooringResponse是一个有2个属性的类,Pier和Mooring。
  • ReserveMooringRequest是一个有2个属性的类,Pier和Mooring。
  • 请注意,我对码头和系泊设备进行了硬编码。您可以将其替换为(int)combobox1.SelectedValue(int)combobox2.SelectedValue
  • 我将WebMethod属性移至CheckReservation方法。

以下是代码:

public partial class Form4 : Form
{
    public Form4()
    {
        InitializeComponent();

        var pier = 3;
        var mooring = 3;
        //set up client
        var service = new Service1();
        var resv = service.CheckReservation(pier, mooring);

        label1.Text = string.Format("Reservation for Pier {0} and Mooring {1} confirmed.", resv.Pier, resv.Mooring);
    }
}

public class Service1 : System.Web.Services.WebService
{
    bool[,] mooringArray = new bool[,] {{ true, false, true, false, true}, //pier 1
                                    {true, false, false, true, true}, //pier 2
                                    {false, true, true, false, true}, //pier 3
                                    {false, false, true, false, true}, //pier 4
                                    {true, false, false, true, true},  //pier 5
                                    {true, true, false, false, false}}; //pier 6

    public ReserveMooringResponse getMooring(ReserveMooringRequest req)
    {
        var resv = new ReserveMooringResponse();

        if (req.mooring > 4)
        {
            req.mooring--;
            req.pier++;
        }

        resv.Pier = req.pier;
        resv.Mooring = req.mooring;

        if (!mooringArray[req.pier, req.mooring])
        {
            var mooring = req.mooring;
            mooring++;
            resv = this.getMooring(new ReserveMooringRequest
            {
                mooring = mooring,
                pier = req.pier
            });
        }

        mooringArray[resv.Pier, resv.Mooring] = false;
        return resv;
    }

    [WebMethod]
    public ReserveMooringResponse CheckReservation(int pier, int mooring)
    {
        var req = new ReserveMooringRequest
        {
            pier = pier,
            mooring = mooring
        };
        return this.getMooring(req);
    }