これはおそらくこれまでで最大の初心者の質問ですが、あるメソッドで設定されたプライベート変数が別のメソッドでリセットされる理由について私は混乱しています。私のコードには次のようなものがあります:
namespace Project.Messages
{
public partial class Inbox : System.Web.UI.Page
{
private static int selectedIndex;
private static string messageIDString;
private static int messageID;
//select message to view
protected void viewMessage(object sender, GridViewCommandEventArgs e)
{
//get index
selectedIndex = MsgInbox.SelectedIndex;
if (int.TryParse(e.CommandArgument.ToString(), out selectedIndex))
{
//get selected dataKey, convert to a int
messageIDString = MsgInbox.DataKeys[selectedIndex].Value.ToString();
messageID = Convert.ToInt16(messageIDString);
}
}
//select message to delete
protected void delBTN_Click(object sender, EventArgs e)
{
SqlCommand com = new SqlCommand("DELETE FROM Messages WHERE MessageID = @param1", conn);
conn.Open();
com.Parameters.AddWithValue("param1", messageID);
}
そのため、メッセージをクリックすると、messageIDが設定され、メッセージが表示されます。その後、クリックしてメッセージを削除すると、変数がリセットされているように見えます/以前に設定された値と同じではありません。これを実現するには、静的変数などを使用する必要がありますか?
ありがとう