Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在三种方法之间转移两个变量_C#_Asp.net_Variables_Methods - Fatal编程技术网

C# 在三种方法之间转移两个变量

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

如何将int变量和string变量从一个方法发送到另一个方法,再发送到最后一个第三个方法?这就是我设置方法的基本方式。显然,每个方法中都有运行的代码,但我只是想了解如何将这些变量转移到其他方法中

    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; }
}