将变量的值传递给另一个方法C#

将变量的值传递给另一个方法C#,c#,asp.net,webforms,C#,Asp.net,Webforms,我是编程新手。如何将变量的值传递给另一个方法?代码变量获取一个值,但当方法退出时,它被重置为零。我需要将visitcode变量设置为code变量的值。我曾尝试在公共类中声明一个代码变量,但它也不起作用。我是这样做的 public partial class _Default : System.Web.UI.Page Int32 code = new Int32(); protected void Repeater1_OnItemCommand(object source, Repeater

我是编程新手。如何将变量的值传递给另一个方法?代码变量获取一个值,但当方法退出时,它被重置为零。我需要将visitcode变量设置为code变量的值。我曾尝试在公共类中声明一个代码变量,但它也不起作用。我是这样做的

public partial class _Default : System.Web.UI.Page
Int32 code = new Int32();



protected void Repeater1_OnItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "visitcode")
    {
        Int32 code = Convert.ToInt32(e.CommandArgument);
    }
}

protected void button1_click(object sender, EventArgs e)
{
    string num = number.Value;
    string document = doc.Value;
    string format = "yyyy-MM-dd HH:mm:ss:fff";
    string stringDate = DateTime.Now.ToString(format);
    string visitcode = code
}

每个HTTP请求都被视为一个新的请求,这意味着您的“代码”变量每次到达服务器时都会被清除,因此ASP.NET WebForms提供了一种在会话变量中存储临时值的方法

您的代码可以如下所示:

protected void Repeater1_OnItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "visitcode")
    {
        Session["Code"] = e.CommandArgument;
    }
}
在第二个请求中,您可以按如下方式检索该值:

protected void button1_click(object sender, EventArgs e)
{
    ...
    string visitcode = Session["Code"];
}
正如我提到的,会话变量是临时的,所以您必须验证您的值是否不同于NULL,如果是,这意味着会话结束


我希望它对您有用

只需声明
私有int代码在这个类中。然后写入
code=Convert.ToInt32(e.CommandArgument)。但请记住,在web应用程序中,变量值不会在请求之间持久存在(除非它们是viewstate中的表单字段或会话变量),因此您可能会发现,在按钮中,click仍然没有填充。@Steve我认为使用Repeater相当清楚地将其标记为WebForms(因此必须是.NET Framework,而不是Core)如果你想展示更多的代码,请回答你的问题。@zaknafein顺便说一句,如果你是编程新手,我不建议你像现在这样学习WebForms。这是20年前的遗留技术,甚至在新的.NET5中都没有。相反,学习一个更新的web框架,比如Razor Pages、Blazor甚至MVC,它有未来,也可以利用.NET和web中的更新技术和改进。(如果您对编程完全陌生,请先从简单的C#console应用程序开始,然后再添加基于web的环境的复杂性。)感谢您的更新…其中的一个问题是
Int32 code=Convert.ToInt32(e.CommandArgument)
当您已经在类中声明了另一个变量时,您正在尝试声明一个新变量
code
。只需从行首删除
Int32
。但是,请记住我关于变量在请求之间保持不变的评论,它可能仍然不起作用。试试史蒂夫发布的教程。。。。但是真的,如果你在这件事上有任何选择,请完全放弃这个项目,学习一种更新的技术。谢谢。它起作用了!但每次刷新页面时,都会在数据库中创建一条记录。我试图关闭session.Clear(),然后应用程序因错误而崩溃。我需要在刷新页面时重置会话。但是,当单击按钮时,该值将被更新,并按我的需要工作。如果清除该变量,则刷新页面时出错:对象引用不指向对象的实例。WebForms自然与服务器控件一起工作。每次与按钮checkbox的交互都会向服务器发出一个请求,这样就有一个标志(IsPostBack)来知道页面是第一次加载还是用户正在使用它。您必须在页面\加载方法中进行如下验证:if(!IsPostBack){//第一次加载页面时执行的代码}