试图制作一个刽子手游戏,我几乎就在那里。当我输入txtBokstavGjett
时,按下按钮时阵列不会保存。即使我有losning[]
的会话变量。
我真的不知道该怎么做,所以任何帮助都非常感谢。 变量名是挪威语,但这不重要。
public partial class _Default : System.Web.UI.Page
{
int antallForsok = 0;
string forsokteBokstaver;
char[] losning = new char[8];
protected void Page_Load(object sender, EventArgs e)
{
if (Session["antallForsok"] != null)
{
antallForsok = (int)Session["antallForsok"];
}
labForsok.Text = Convert.ToString(antallForsok);
if (Session["forsokteBokstaver"] != null)
{
forsokteBokstaver = (string)Session["forsokteBokstaver"];
}
if (Session["losning"] != null)
{
losning = (char[])Session["losning"];
}
if (antallForsok == 0)
{
for (int k = 0; k < losning.Length; k++)
{
losning[k] = '_';
labRes.Text += " " + losning[k] + " ";
labTestBox.Text += "" + losning[k] + " ";
}
}
}
protected void btnKnapp_Click(object sender, EventArgs e)
{
labRes.Text = "";
labTestBox.Text = "";
string losningOrd = "appelsin";
char brukerGjett = Convert.ToChar(txtBokstavGjett.Text);
char[] bokstaver = losningOrd.ToCharArray();
losning = new char[bokstaver.Length];
for (int i = 0; i <bokstaver.Length; i++)
{
if (brukerGjett == bokstaver[i])
{
losning[i] = bokstaver[i];
}
else if (!(brukerGjett == bokstaver[i]))
{
}
forsokteBokstaver = brukerGjett.ToString();
labRes.Text += "" + losning[i];
labTestBox.Text += " " + losning[i];
}
txtBokstavGjett.Text = "";
antallForsok++;
labForsoktBokstav.Text += forsokteBokstaver;
}
protected void Page_Unload (object sender, EventArgs e)
{
Session["antallForsok"] = antallForsok;
Session["forsokteBokstaver"] = forsokteBokstaver;
Session["losning"] = losning;
}
}
答案 0 :(得分:1)
从Session变量恢复数组不应该有任何问题,但是你有一行&#39; losning = new char [...]&#39;那是再次擦掉它。你应该只能删除该行。
答案 1 :(得分:0)
在页面已经在浏览器中发送和呈现之后,正在调用Page_Unload
方法。在生命周期中为了将值保存到Session,为时已晚。
为什么不在计算时简单地处理存储这些值?
protected void btnKnapp_Click(object sender, EventArgs e)
{
labRes.Text = "";
labTestBox.Text = "";
string losningOrd = "appelsin";
char brukerGjett = Convert.ToChar(txtBokstavGjett.Text);
char[] bokstaver = losningOrd.ToCharArray();
losning = new char[bokstaver.Length];
for (int i = 0; i <bokstaver.Length; i++)
{
if (brukerGjett == bokstaver[i])
{
losning[i] = bokstaver[i];
}
else if (!(brukerGjett == bokstaver[i]))
{
}
forsokteBokstaver = brukerGjett.ToString();
labRes.Text += "" + losning[i];
labTestBox.Text += " " + losning[i];
}
txtBokstavGjett.Text = "";
antallForsok++;
labForsoktBokstav.Text += forsokteBokstaver;
Session["antallForsok"] = antallForsok;
Session["forsokteBokstaver"] = forsokteBokstaver;
Session["losning"] = losning;
}