1

こんにちは、webmethod でコンボ ボックスから選択されたスポットが false かどうかを確認する方法を見つけるのに苦労しています。コンボボックスは、桟橋と係留を選択することです。配列内で tru が取られます false は無料です。ここで、Webメソッドのいくつかが完了しました。

編集 2 つのコンボボックスから 2 つの int を呼び出す 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;
    }
4

1 に答える 1

0

私はあなたが取り組んでいることの要点を得たことを願っています。基本的に、桟橋と係留についてアレイをテストする再帰が必要です。true の場合は係留を予約し、false の場合は空いている係留を探します。

いくつかの仮定:

  • ReserveMooringResponseは、Pier と Mooring の 2 つのプロパティを持つクラスです。
  • ReserveMooringRequestは、Pier と Mooring の 2 つのプロパティを持つクラスです。
  • 桟橋と係留をハードコードしたことに注意してください。(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);
    }
于 2013-10-23T04:46:25.767 に答える