尝试将 VB.Net 转换为 C# 视图状态问题

本文关键字:视图状态 问题 转换 Net VB | 更新日期: 2023-09-27 18:34:23

VB.NET 代码

If ViewState("lstSetting") IsNot Nothing Then
  username = ViewState("lstSetting")("Email")
  password = ViewState("lstSetting")("Psw")
  mHost = ViewState("lstSetting")("Host").ToString.Split(":")(1)
  mPort = ViewState("lstSetting")("Port").ToString.Split(":")(1)
End If
password = Trim(dec(ondecrypt(Trim(password))))

C# 代码

if (ViewState["lstSetting"] != null)
{
  username = ViewState["lstSetting"]("Email");
  password = ViewState["lstSetting"]("Psw");
  mHost = ViewState["lstSetting"]("Host");
  //.ToString.Split(":")(1)
  mPort = ViewState["lstSetting"]("Port");
  //.ToString.Split(":")(1)
}
password=Strings.Trim(ModCommon.dec(ModCommon.ondecrypt(Strings.Trim(password))));`

错误:预期方法名称...

此处显示错误

ViewState["lstSetting"]("Email")

尝试将 VB.Net 转换为 C# 视图状态问题

ViewState["lstSetting"]("Email")

应该是

((Dictionary<string, string>)ViewState["lstSetting"])["Email"]

实际上,您应该检索ViewState["lstSetting"]一次,然后使用它。但这适用于两个代码片段。

由于lstSetting是一个Dictionary<string, string>,你需要先强制转换变量,然后使用Item访问器获取变量[]

Dictionary<string, string> dic = ViewState["lstSetting"] as Dictionary<string, string>;
if (dic != null)
{
    username = dic["Email"];
    // etc
}