2013-10-23 30 views
1

嗨,即時通訊無法找到一種方法來進行webmethod檢查,看看是否從組合框中選擇的點如果爲false。組合框是要選擇碼頭和繫泊。在陣列中tru被認爲是虛假的(這就是我希望會發生的事情)。這裏有一些webmethod iive完成。形式GUI與2組合框來檢查webmethod中的布爾型數組

編輯我需要編寫一個webmethed,從2個組合框中調用2個整數,然後檢查數組中的該插槽是否空閒。如果它沒有空閒選擇下一個avilable插槽。該陣列用於碼頭和繫泊。

[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; 
    } 
+0

我無法理解你的要求。你能改說嗎? –

+0

檢查我的最新編輯,我修復了一個遞歸錯誤。 – paqogomez

+0

讓我知道如果我錯過了船。 @SimonWhitehead看上去對你有用嗎? – paqogomez

回答

0

我希望我能得到你所從事的工作。基本上,你需要一個遞歸來測試你的數組的碼頭和繫泊。如果屬實,則保留繫泊設施,如果不合理,則繼續尋找開放的繫泊設施。

一些假設:

  • ReserveMooringResponse是具有2個屬性,碼頭和繫泊的類。
  • ReserveMooringRequest是一個有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); 
    } 
+1

非常感謝你對我的幫助很大 – user2636592