如何正确操作变量

本文关键字:变量 操作 何正确 | 更新日期: 2023-09-27 18:00:39

所以我试图创建一个字符串变量,其中包含一些文本和一个从文本框获取数据的变量:

        string var1, var2;
        var1 = txt1.text;
        var2 = "some text" + var1 + "some text";

当我在按钮事件中尝试它时,这并不难,但var2将在我的程序中经常使用,它里面有很多文本。如果可能的话,我希望尽量减少在每个需要的事件上反复声明变量的次数。我想如果这能发生的话会更容易:

    string var1 = TextBox.Text;
    string var2 = "a lot of text" + var1 + "a lot of text";
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        rtextbox.Text = "a lot of text" + var2;
    } 

var2将被用作签名,所以我需要多次访问它。如果有更简单的方法,那么我愿意接受建议。

当使用上面的代码声明变量时,我没有得到文本框的intellisense,所以我得到了一个错误。我需要帮助,这样我就可以像上面说明的那样声明变量。我使用的是vs2010。如果使用更高版本会有所帮助,那么我会尝试一下。

我只接触了c#编程的表面,所以你看到的任何可能失修的东西都不是这样的。

如何正确操作变量

我假设当您更改TextBox中的值并随后调用var2时,您希望看到新的值。你可以通过使用一个函数来返回它,例如

private string GetFormattedTextBoxValue()
{
  string var1 = TextBox.Text;
  string var2 = "a lot of text" + var1 + "a lot of text";
  return var2;
}
private void button1_Click(object sender, EventArgs e)
{
    rtextbox.Text = "a lot of text" + GetFormattedTextBoxValue();
} 

或者,如果你想重用逻辑,你可以在文本框中传递:

private string GetFormattedTextBoxValue(System.Windows.Forms.TextBox textbox)
{
  string var1 = textbox.Text;
  string var2 = "a lot of text" + var1 + "a lot of text";
  return var2;
}
private void button1_Click(object sender, EventArgs e)
{
    rtextbox.Text = "a lot of text" + GetFormattedTextBoxValue(TextBox1);
} 

或者,如果它总是同一个文本框,你可以将其作为一个属性,而不需要括号

private string FormattedTextBoxValue
{
  get
  {
    string var1 = TextBox.Text;
    string var2 = "a lot of text" + var1 + "a lot of text";
    return var2;
  }
}
private void button1_Click(object sender, EventArgs e)
{
    rtextbox.Text = "a lot of text" + FormattedTextBoxValue;
} 

然后你就可以去掉临时变量:

private string FormattedTextBoxValue
{
  get
  {
    return "a lot of text" + TextBox.Text + "a lot of text";
  }
}
private void button1_Click(object sender, EventArgs e)
{
    rtextbox.Text = "a lot of text" + FormattedTextBoxValue;
} 

您可以在一个地方声明变量,如下所示:

public static string var1, var2;

然后您可以将它与classname.var1一起使用,其中classname是您声明var1的类。

类似于您想要的东西:

不推荐

public static class GlobalVariables{
   public static string Var2 {get;set;}
}

从你的问题中还不清楚你是想在所有表单中还是在一个表单中使用Var2。如果你想在所有窗体中使用它,那么最好像这个一样声明静态类

static class GlobalClass
{
    private static string var2 = "";
    public static string Var2
    {
        get { return var2; }
        set { var2 = value; }
    }
}

像这个一样使用

GlobalClass.Var2 = "any string value";