如何正确操作变量

时间:2015-07-01 06:00:35

标签: c#

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

        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将用作签名,因此我需要多次访问它。如果有更简单的方法,那么我愿意接受建议。

在使用上述代码声明变量时,我不会获得文本框的智能感知,因此我收到了错误消息。我需要帮助,以便我可以像上面说明的那样声明变量。我正在使用vs2010。如果使用更高版本将有所帮助,那么我将尝试它。

我只触及c#编程的表面,所以你看到的任何可能不尊重的东西都不是那种方式。

4 个答案:

答案 0 :(得分:0)

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

public static string var1, var2;

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

答案 1 :(得分:0)

类似于你想要的东西:

不推荐

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

答案 2 :(得分:0)

我假设当您更改TextBox中的值并在之后调用var2时,您希望看到 new 值。您可以使用函数返回它,例如

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

答案 3 :(得分:0)

您的问题是否要在所有表单或单个表单中使用 Var2 ,这一点并不清楚。如果您想在所有表单中使用它,那么最好将静态类声明为此

static class GlobalClass
{
    private static string var2 = "";

    public static string Var2
    {
        get { return var2; }
        set { var2 = value; }
    }
}

并像这样使用

GlobalClass.Var2 = "any string value";