C#在两个事件处理程序之间传递变量

C#在两个事件处理程序之间传递变量,c#,C#,我对将变量从一个事件处理程序传递到另一个事件处理程序有疑问。具体来说,以下是我的代码: private void Form1_Load(object sender, EventArgs e) { string loggedIn = File.ReadLines("Data.txt").Last(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e)

我对将变量从一个事件处理程序传递到另一个事件处理程序有疑问。具体来说,以下是我的代码:

    private void Form1_Load(object sender, EventArgs e)
    {
        string loggedIn = File.ReadLines("Data.txt").Last();

    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        writingToTxtFile();
    }

我想将变量“loggedIn”(或其值)传递给方法“Form1\u FormClosing”(特定于“writingToTxtFile”函数)。我想到的唯一解决办法是使用全局变量。有没有办法避免这种情况

存储在函数外但在类中的私有字符串中。

您可以执行以下操作:

private string _loggedIn;

private void Form1_Load(object sender, EventArgs e)
{
    _loggedIn = File.ReadLines("Data.txt").Last();
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    //do something with _loggedIn
    writingToTxtFile();
}

您可以创建页面属性,它将通过页面事件和方法填充。 你可以用任何方法


至此,您将变量的作用域更改为所有页面作用域。

C#甚至没有全局变量。我不知道,谢谢您提供的信息!看起来我把C#中全局变量的概念搞错了,因为我会认为这是全局变量。我是C#新手,在没有阅读一些手册之类的东西的情况下就开始编写代码,所以我在编程的过程中学习了很多东西(或者至少尝试着学习)。不过,感谢您的帮助。您需要理解什么是全局变量的概念,理解为什么它不是全局变量以及为什么它们不在C#中。尝试在C#中查找“范围”。在这种情况下,您只需要一个私有字段,因为两个函数都是同一类中的实例方法。