2010-11-25 53 views
0

我的頁面中有以下代碼,但工作正常,但案例數量要大得多。我需要在其他選擇中使用完全相同的案例列表,但我不想在整個地方重複完全相同的代碼。聲明要在多個地方使用的案例列表

我有這樣的:

Select Case Request.Cookies("LatestRefer").Value 
     Case "EZ12" 
      freeCallNumber = "0800 111 1111" 
     Case "EW56" 
      freeCallNumber = "0800 222 2222" 
     Case "AT34" 
      freeCallNumber = "0800 333 3333" 
     Case Else 
       freeCallNumber = "0800 444 4444" 
    End Select 

我非常希望這樣的事情

Select Case Request.Cookies("cookie1").Value 
      myGlobalListOfCases() 
     End Select 

Select Case Request.Cookies("cookie2").Value 
       myGlobalListOfCases() 
      End Select 

Select Case Request.Cookies("cookie3").Value 
        myGlobalListOfCases() 
       End Select 

任何想法?

編輯:

Private Function getFreeCallNumber(ByVal value As String) As String 
     Select Case value 
      Case "EZ12" 
       Return "0800 111 1111" 
      Case Else 
       Return "0800 222 2222" 
     End Select 
    End Function 

而且在Page_Load:

If Not Request.Cookies("cookie1") is Nothing Then 
    freeCallnumber = Me.getFreeCallNumber(Request.Cookies("cookie1").Value) 
     Else 
    freeCallnumber = Me.getFreeCallNumber(Request.Cookies("cookie2").Value) 
     End If 

這類作品,但有一個小問題。我必須加載頁面兩次以更改電話號碼(或者電話號碼顯示爲應該在上次加載時完成)。希望這是有道理的......這是相當古怪的行爲。

+0

如果您在相同的頁面請求中設置(發送)Cookie,也許會出現此問題?或者,這可能是一個視圖狀態/數據綁定問題,具體取決於您對電話號碼所做的操作。嘗試調試頁面或只寫入響應流以查看提取日期的時間。即Response.Write(「Number =」+ freeCallNumber); – 2010-11-25 15:37:20

回答

2

創建方法:

private string getFreeCallNumber(string value) 
{ 
    switch (value) 
    { 
     case "EZ12": 
      return "0800 111 1111"; 
     case "EW56": 
      return "0800 222 2222"; 
     // TODO: Add more switch cases here. 
     default: 
      return null; 
    } 
} 

當調用它:

string freeCallnumber = this.getFreeCallNumber(Request.Cookies["cookie1"].Value)); 
if (string.IsNullOrEmpty(freeCallNumber)) 
{ 
    // other logic 
} 

我的猜測,它像這在VB.net:

Private Function getFreeCallNumber(value as String) as String 
    Select Case value 
     Case "EZ12" 
      return "0800 111 1111" 
     Case "EW56" 
      return "0800 222 2222" 
     ' TODO: Add more switch cases here. 
     Case Else 
      return Nothing 
    End Select 
End Function 
+0

任何想法如何讓這個工作在VB?我有一個很好的嘗試,但失敗了! – Tom 2010-11-25 13:35:32