Объявление списка регистра для использования в более чем на одном месте
-
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