Объявление списка регистра для использования в более чем на одном месте

StackOverflow https://stackoverflow.com/questions/4277413

  •  28-09-2019
  •  | 
  •  

Вопрос

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

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

   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

А в странице_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

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

Это было полезно?

Решение

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

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

Другие советы

Вы можете попробовать Словарь (из TKEY, TVALUE) класса
Примечание: это сериализация: -Q

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top