【发布时间】:2020-12-30 09:02:56
【问题描述】:
我是编程新手。如何将变量的值传递给另一个方法?代码变量得到一个值,但是当方法退出时,它被重置为零。我需要将 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
}
【问题讨论】:
-
在这个类中声明
private int code;。然后写code = Convert.ToInt32(e.CommandArgument);。但请记住,在 Web 应用程序中,变量值不会在请求之间保持不变(除非它们是视图状态中的表单字段或会话变量),因此您可能会发现在按钮中单击仍然没有填充。 -
@Steve 我认为Repeater 的使用清楚地将其标记为WebForms(因此必须是.NET Framework,而不是Core)
-
如果您想显示更多代码,请edit提出您的问题。
-
@zaknafein 顺便说一句,如果您是编程新手,我不建议您学习 WebForms,因为您似乎正在这样做。这是 20 年前的一项遗留技术,甚至在新的 .NET 5 中都不可用。相反,学习一个更新的 Web 框架,如 Razor Pages、Blazor 甚至 MVC,它有未来,也可以利用更新的技术以及 .NET 和 Web 的总体改进。 (如果您完全不熟悉编程,请先从简单的 C# 控制台应用程序开始,然后再添加基于 Web 的环境的复杂性。)
-
感谢您的更新...其中一个问题是,在
Int32 code = Convert.ToInt32(e.CommandArgument);中,当您已经在类中声明了另一个变量时,您正试图声明一个新变量code。只需从行首删除Int32。但是,请记住我关于变量在请求之间持续存在的评论,它可能仍然不起作用。试试史蒂夫发布的教程。 ....但说真的,如果你在这件事上有任何选择,请彻底放弃这个项目,学习一项更新的技术。