Объявление списка дел для использования более чем в одном месте - PullRequest
0 голосов
/ 25 ноября 2010

У меня есть следующий код на моей странице, который отлично работает, хотя число случаев намного больше. Мне нужно использовать точно такой же список дел в других выборках, но я не хочу, чтобы везде повторялся один и тот же код.

У меня есть это:

   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

Есть идеи?

EDIT:

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

Этот вид работает, но есть небольшая проблема. Мне нужно дважды загрузить страницу, чтобы изменить номер телефона (или номер телефона выглядит так, как следовало сделать при предыдущей загрузке). Надеюсь, это имеет смысл ... это довольно странное поведение.

Ответы [ 2 ]

2 голосов
/ 25 ноября 2010

Создать метод:

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
1 голос
/ 25 ноября 2010

Вы можете попробовать класс Dictionary (Of TKey, TValue)
Примечание: является сериализуемым: -Q

...