C# 在三种方法之间转移两个变量
如何将int变量和string变量从一个方法发送到另一个方法,再发送到最后一个第三个方法?这就是我设置方法的基本方式。显然,每个方法中都有运行的代码,但我只是想了解如何将这些变量转移到其他方法中C# 在三种方法之间转移两个变量,c#,asp.net,variables,methods,C#,Asp.net,Variables,Methods,如何将int变量和string变量从一个方法发送到另一个方法,再发送到最后一个第三个方法?这就是我设置方法的基本方式。显然,每个方法中都有运行的代码,但我只是想了解如何将这些变量转移到其他方法中 protected void deleteOkBtn_Click(object sender, EventArgs e) { remove() } protected void imgdelbtn_Click(object sender, EventAr
protected void deleteOkBtn_Click(object sender, EventArgs e)
{
remove()
}
protected void imgdelbtn_Click(object sender, EventArgs e)
{
}
public void remove()
{
}
在delete方法中,引发一个事件
MyCustomEvent
,该事件接受MyCustomEventArgs
,其中包含要传递给另一个类的字段
然后,让另一个类将处理程序挂接到这个类事件中。您可以在页面上创建一个控件
<asp:hiddenfield id="MyHiddenValue" runat="server" />
您是从方法1调用方法2还是从方法3调用方法?或者它们都是由用户事件调用的 如果您调用了它们,但不想更改参数名称,则可以创建一个结构并将其作为发送方对象发送,然后将其强制转换回该结构,或者创建一个扩展EventArgs的新类并将其传递到该结构 如果用户事件调用了,并且您希望共享这些值,那么可以使用全局值,或者作为Kon注释,这可能是一个asp.net页面,然后您可以使用ViewState在回发之间保存这些值 ViewState的示例用法如下所示:
public uint ClauseId
{
get { return Convert.ToUInt32(ViewState["ClauseId"] ?? 0); }
set { ViewState["ClauseId"] = value; }
}
然后,在您的方法中,您可以访问ClauseId作为页面的属性
Ps,我只是从一些代码中复制了这个。引号中的名称可以是您想要的任何内容,只是在读写时相同,并且可以不同于属性名称。您也不必使用属性,我只是发现,如果访问多个位置,读取比在方法中直接读取和写入ViewState更容易。这些变量的范围是什么。它们是每个用户会话所特有的,还是可以在更全局的级别上跟踪的?正如Chuck提到的,ViewState是一个选项。
public uint ClauseId
{
get { return Convert.ToUInt32(ViewState["ClauseId"] ?? 0); }
set { ViewState["ClauseId"] = value; }
}