在 C# 中传递变量形式以形成私有到全局

本文关键字:全局 变量 | 更新日期: 2023-09-27 17:55:51

一直在开发一个简单的C#Windows应用程序。我已经能够将一些变量从一个表单传递到下一个表单,并使用form2 y = new form2(passingVariable); y.ShowDialog();然后在下一个表单上使用它们public form2(string myVariable).但是,此方法仅允许我在这些大括号内使用该变量。目前,我正在尝试将其传递给下一个表格。但是,当我尝试使用上面提供的代码行将其传递到下一个表单时,它不会让我使用该变量。它给了我错误 名称"用户名"在当前上下文中不存在 我有很多源代码,不知道我到底需要分享什么,所以这里是我的 webng.com 帐户的链接,其中包含一个非常简单的网页,如果有人需要查看我的源代码,请使用我的源代码设置它。

在 C# 中传递变量形式以形成私有到全局

尝试在该当前表单上创建另一个变量来存储该用户名,然后分配传递给该变量的用户名。然后你的构造函数将是这样的:

private string username;
public talkingWithProgram(string userName, string pcName)
{
InitializeComponent();
this.Text = pcName;
programQuestion.Text = "Whatcha wanna talk about 'n" + userName + "?";
this.userName = userName;
}
sportsCategories y = new sportsCategories(userName);

现在,创建一个新的 sportsCategory 类会从此上下文中传递 userName,该上下文具有上一个窗体的值。目前,看起来您正在引用构造函数中的用户名,该用户名位于方法上下文中并且超出了范围之外。

我会避免在窗口窗体的构造函数中设置特定变量。 通常,更习惯地使用吸气剂和二传手,或专门为此目的指定的函数。

例如:如果可以form2 y = new form2(passingVariable);代码,则可以使用代码

form2 y = new form2();
form2.SetMyVar(passingVariable);

或者,如果您使用的是 getter 和 setter:

form2 y = new form2();
form2.SetMyVar = passingVariable

这样,每当您需要设置或更新变量时,只要您有对表单的引用,您就可以这样做。 此外,在上述SetMyVar()函数中(如果您选择该方法),请务必设置一个类变量。 在代码中,类变量位于函数之外,因此它们对该类实例的所有函数可见。

初始化

类 xyz 中的变量在构造函数中为它们赋值,例如

 String a1,b1=String.empty
  Class xyz
 {
   xyz(string a,string b)
  {       //constructor
   a1=a;
   b1=b;
    //Now use them in whole class
  }
 }

或者,如果您想在整个应用程序中使用它们,请在程序中全局初始化它们.cs然后你可以设置和获取这样的值

Program.a1="abc"    //assigning value