获取错误:
* opertaor必须应用于指针
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));
}
如果我删除“*”前面的“+”那就说
无法从long转换为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);
}
答案 0 :(得分:0)
查看此部分(uint)Value - 1 + * 0x10
。您没有遵循添加和乘法的数学规则,+
或*
需要两个操作数。您没有提供两个操作数。这里+ * 0x10
之后有两个运算符,这会导致问题。如果您要将0x10
添加到之前的结果,请移除*
,如果您希望乘以0x10
,请移除+
。
cannot convert from long to uint.
错误的问题是可能 Offsets.ClassName
变量的类型为long
或Int64
,{{1}的结果}语句很长,因为Offsets.ClassName + ((uint)Value - 1 * 0x10)
的结果是((uint)Value - 1 * 0x10)
,当你有uint
时,结果类型将是long + uint
。现在您要将一个long变量传递给接受long
的函数,这会导致错误,因为没有从uint
到long
的隐式转换。