use*_*475 4 c# bytearray public
我正在使用公共字节数组,并希望分配值,就像我在方法中分配数组,即
byte[] foo = {0x32, 0x00, 0x1E, 0x00};
Run Code Online (Sandbox Code Playgroud)
但是当我定义我被迫做的值时
foo[0] = 0x32;
foo[1] = 0x00;
foo[2] = 0x1E;
foo[3] = 0x00;
Run Code Online (Sandbox Code Playgroud)
如果我使用第一个例子VS给出一个错误"只有赋值,调用,递增,递减,等待和新对象表达式可以用作语句"
如果它有帮助,那么数组总是4个字节.
我的代码
public byte[] SetSpeed = new byte[4];
private void trackBar1_Scroll(object sender, EventArgs e)
{
if (trackBar1.Value == 0)
{
try
{
stop = true;
UpdateSThread.Abort();
Thread.Sleep(350);
}
catch { }
SetSpeed = {0x00,0x00,0x00,0x00};
WriteMem(GetPlayer() + STATUS_OFFSET, SetSpeed);
label1.Text = "Normal";
}
}
Run Code Online (Sandbox Code Playgroud)
你的第一个例子很好,但它只能在声明中使用.元素必须可隐式转换为元素类型.大小由给定的元素数量确定.
byte[] foo = { 0x32, 0x00, 0x1E, 0x00 };
Run Code Online (Sandbox Code Playgroud)
或者你也可以这样做
byte[] foo = new byte[4];
foo[0] = 0x32;
foo[1] = 0x00;
foo[2] = 0x1E;
foo[3] = 0x00;
Run Code Online (Sandbox Code Playgroud)
如上所述,您尝试使用的语法只能在声明中使用.所以试试这样.
public byte[] SetSpeed;
private void trackBar1_Scroll(object sender, EventArgs e)
{
if (trackBar1.Value == 0)
{
try
{
stop = true;
UpdateSThread.Abort();
Thread.Sleep(350);
}
catch { }
//note it will always create a new array
SetSpeed = new byte[]{0x00,0x00,0x00,0x00};
WriteMem(GetPlayer() + STATUS_OFFSET, SetSpeed);
label1.Text = "Normal";
}
}
Run Code Online (Sandbox Code Playgroud)
您只能new在声明变量时使用未指定的表单.所以这很好:
byte[] x = { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
但这不是:
byte[] x;
x = { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
相反,你需要这样的东西:
byte[] x;
x = new byte[] { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
或者,如果类型推断对您有利,并且您使用的是C#3或更高版本,则可以使用隐式类型数组:
string[] x;
x = new[] { "a", "b", "c" };
Run Code Online (Sandbox Code Playgroud)
但是,您确实需要决定是要创建新数组,还是要改变现有数组.鉴于您只是将所有值设置为0,您可以使用:
Array.Clear(SetSpeed, 0, 4);
Run Code Online (Sandbox Code Playgroud)
编辑:现在问题包含这个:
我想更改现有数组中的值,
然后使用
SetSpeed = new byte[] { ... }
Run Code Online (Sandbox Code Playgroud)
是不恰当的,因为这将改变的值的SetSpeed指代不同的阵列.
要更新现有数组,您可以只使用4个单独的语句,也可以将其提取到具有4个参数的单独方法.现在还不是很清楚这些值会是什么,这使得很难为您提供最好的代码.
| 归档时间: |
|
| 查看次数: |
15324 次 |
| 最近记录: |