所以我试图创建一个字符串变量,其中包含一些文本和一个变量,从文本框中获取数据:
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#编程的表面,所以你看到的任何可能不尊重的东西都不是那种方式。
答案 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";