我的页面中有以下代码可以正常工作,但案例数量要大得多。我需要在其他选项中使用完全相同的案例列表,但我不希望在整个地方具有完全相同的代码副本。
我有这个:
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 :(得分: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
答案 1 :(得分:1)
您可以尝试Dictionary(Of TKey, TValue) Class
注意:是可序列化的:-Q