所以我一直想弄清楚如何让我的代码整夜工作。我一直在阅读各种各样的东西,并试图找出我做错了什么,但我尝试的一切我最终都出现在同一个问题上。我试图通过在方法中引用它来更改我的类中的变量,因此它将在类中更改而不仅仅在本地更改。但我不知道将什么作为参考资料Storyboard SB的参数。有人可以告诉我应该做什么,我已经尝试将其设置为null,即使通过变量它也不起作用。 “StoryBoard”也是我正在编写代码的类。
public class StoryBoard
{
public string[] TextBoxes = new string[10];
public int Counter = 0;
private void RtClickButton_Click(object sender, EventArgs e)
{
RtClickButton_ClickImpl(sender, e, "what would I put here?");
}
private void RtClickButton_ClickImpl(object sender, EventArgs e, ref StoryBoard SB)
{
string TBT = TxtBox.Text;
switch(Counter)
{
case 0:
TextBoxes[Counter] = TBT;
break;
}
SB.Counter++; // Adds 1 to the counter.
LtClickButton.Enabled = true;
TxtBox.Clear(); // Clears the text box.
}
}
答案 0 :(得分:1)
尝试简单
Counter++;
或者如果有疑问,您可以使用this
关键字来引用此类的实例成员,例如
this.Counter++; // Adds 1 to the counter.
为了扩展这一点,当前对象的所有变量总是可以在普通方法中访问(即不是静态的),除非在同一范围内存在同名变量,其中范围可以是方法或单个在花括号之间阻挡。
如果使用this
关键字,它将始终引用属于对象/类的变量,而不是在不同范围内定义的内联变量。
答案 1 :(得分:-1)
但我不知道将什么作为参考资料故事板SB的参数。
为SB保留私有成员变量:
private StoryBoard _SB = null; //A member variable to hold the StoryBoard object
public class Form1WhatEver
{
public Form1WhatEver()
{
//Instantiate a reference to the StoryBoard and hold it in the private member variable
_SB = new StoryBoard();
}
public string[] TextBoxes = new string[10];
public int Counter = 0;
private void RtClickButton_Click(object sender, EventArgs e)
{
RtClickButton_ClickImpl(sender, e, ref _SB); //Pass the instance of StoryBoard byRef.
//Check that our _SB Counter variable was incremented (+1)
System.Diagnostics.Debug.WriteLine(_SB.Counter.ToString());
}
private void RtClickButton_ClickImpl(object sender, EventArgs e, ref StoryBoard SB)
{
string TBT = TxtBox.Text;
switch(Counter)
{
case 0:
TextBoxes[Counter] = TBT;
break;
}
SB.Counter++; // Adds 1 to the counter.
LtClickButton.Enabled = true;
TxtBox.Clear(); // Clears the text box.
}