从另一个 Class 调用方法时如何将 int 递增 1
How can I increment int by 1 when calling a method from another Class
我想在 C# 中实现以下想法,但我受困于此而无法继续。
我想从 Class Something 创建更多对象,并且总是在调用方法 I_Frame 时将序列号增加 1(我正在尝试使用按钮对其进行测试)。
public class Something
{
private int sequenceNumber;
public int SequenceNumber
{
get
{
return this.sequenceNumber;
}
set
{
this.sequenceNumber = value;
}
}
public int I_FRAME(ref byte[] IFrame)
{
IFrame[0] = (byte)((sequenceNumber);
IFrame[1] = 0x00
sequenceNumber=sequenceNumber + 1 % 32768;
return sequenceNumber;
}
这是我的按钮代码。
public partial class VlastniTCP : Form
{
byte[] testbyte = new byte[2];
private void button2_Click(object sender, EventArgs e)
{
Something Test = new Something();
Test.I_Frame(ref testbyte);
textbox1.Text = testbyte[0];
}
}
如果有任何建议或说明如何去做,我会很高兴。
提前致谢。
您的问题是每次单击按钮时都会创建一个新的 Something
。 Something.sequenceNumber
每当你创建一个新的时默认为零。您的选择是:
选项 1:每次都使用相同的实例:
public partial class VlastniTCP : Form
{
byte[] testbyte = new byte[2];
private Something test;
private void button2_Click(object sender, EventArgs e)
{
test ??= new Something();
test.I_FRAME(ref testbyte);
textbox1.Text = testbyte[0];
}
}
选项 2:跟踪上次使用的序列号:
public class Something
{
private static int lastSequenceNumber;
public int SequenceNumber { get; set; }
public int I_FRAME(ref byte[] IFrame)
{
var sequenceNumber = (lastSequenceNumber + 1) % 32768;
lastSequenceNumber = sequenceNumber;
SequenceNumber = sequenceNumber;
IFrame[0] = (byte)sequenceNumber;
IFrame[1] = 0x00;
return sequenceNumber;
}
}
我想在 C# 中实现以下想法,但我受困于此而无法继续。 我想从 Class Something 创建更多对象,并且总是在调用方法 I_Frame 时将序列号增加 1(我正在尝试使用按钮对其进行测试)。
public class Something
{
private int sequenceNumber;
public int SequenceNumber
{
get
{
return this.sequenceNumber;
}
set
{
this.sequenceNumber = value;
}
}
public int I_FRAME(ref byte[] IFrame)
{
IFrame[0] = (byte)((sequenceNumber);
IFrame[1] = 0x00
sequenceNumber=sequenceNumber + 1 % 32768;
return sequenceNumber;
}
这是我的按钮代码。
public partial class VlastniTCP : Form
{
byte[] testbyte = new byte[2];
private void button2_Click(object sender, EventArgs e)
{
Something Test = new Something();
Test.I_Frame(ref testbyte);
textbox1.Text = testbyte[0];
}
}
如果有任何建议或说明如何去做,我会很高兴。
提前致谢。
您的问题是每次单击按钮时都会创建一个新的 Something
。 Something.sequenceNumber
每当你创建一个新的时默认为零。您的选择是:
选项 1:每次都使用相同的实例:
public partial class VlastniTCP : Form
{
byte[] testbyte = new byte[2];
private Something test;
private void button2_Click(object sender, EventArgs e)
{
test ??= new Something();
test.I_FRAME(ref testbyte);
textbox1.Text = testbyte[0];
}
}
选项 2:跟踪上次使用的序列号:
public class Something
{
private static int lastSequenceNumber;
public int SequenceNumber { get; set; }
public int I_FRAME(ref byte[] IFrame)
{
var sequenceNumber = (lastSequenceNumber + 1) % 32768;
lastSequenceNumber = sequenceNumber;
SequenceNumber = sequenceNumber;
IFrame[0] = (byte)sequenceNumber;
IFrame[1] = 0x00;
return sequenceNumber;
}
}