* 运算符必须应用于指针

The * operator must be applied to a pointer

出现错误:

The * opertaor must be applied to a pointer

public static void SetClass(decimal Value, string input)
{
    Utils.SetMemory(Offsets.ClassName, new byte[16]);
    byte[] Multiplier = new byte[] { 0x04 };
    byte[] inputBytes = Encoding.ASCII.GetBytes(input);
    Utils.SetMemory(Offsets.ClassName + ((uint)Value - 1 + * 0x10), Utils.Multiply(inputBytes, Multiplier));
}

如果我删除“*”前面的“+”,它会显示

cannot convert from long to uint

如果转换它是解决方案,我该怎么做?

自定义 numericUpDown 需要这个

Utils.SetMemory(Offsets.ClassName + ((uint)numericUpDown1.Value - 1) * 0x10, "Classes");

想像这样调用方法

Stats.SetClass(numericUpDown Here.Value, text string here);

我是 C# 新手

编辑

public static void SetMemory(uint Offset, byte[] value)
{
    PS3.SetMemory(Offset, value);
}

看这部分(uint)Value - 1 + * 0x10。您没有遵循加法和乘法的数学规则,+* 需要两个操作数。您没有提供两个操作数。这里 + * 0x10 有两个运算符彼此相继,这会导致问题。如果要将 0x10 添加到先前的结果中,请删除 *,如果要乘以 0x10,请删除 +.

cannot convert from long to uint.错误的问题是可能Offsets.ClassName变量是longInt64类型,结果Offsets.ClassName + ((uint)Value - 1 * 0x10) 语句很长,因为 ((uint)Value - 1 * 0x10) 的结果是 uint,而当您有 long + uint 时,结果类型将是 long。现在您想将一个 long 变量传递给接受 uint 的函数,这会导致错误,因为没有从 longuint.

的隐式转换