我有以下职位类别:
public struct Pos
{
public int x;
public int y;
public float height;
public Pos (int _x, int _y, float _height)
{
x = _x;
y = _y;
height = _height;
}
public override string ToString ()
{
return x.ToString() + "," + y.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
但是因为我打了Pos.ToString()几千次电话,这对我来说太慢了.我只需要一种基于Pos.x和获取单个唯一值的有效方法Pos.y,用作字典键.注意:我无法使用,Pos因为我正在比较Poson x和的不同实例y.
我想我正在努力正确定义以下不明确的操作码:LD HL,SP+r8和JP (HL)操作码(0xE9和0xF8分别)
在我的实现中,LD HL,SP+r8设置HL为 的值SP+r8,但我感觉这可能与从 RAM 加载内存有关。
JP (HL),我已经PUSH将 PC 放到堆栈上并将程序计数器设置为 HL 的值(就像JP a16,除了 HL 的值),但我读过一些论坛,似乎说这是错误的。
任何对这些指令所做的任何澄清都会很棒,因为我现在很迷茫。
我正在开发一个Gameboy模拟器,我已经在ROM中找到了一个点,我得到了操作码0xD1(弹出DE堆栈)但是堆栈是空的(没有值被推到它上面).所有未知的操作码都返回错误,所有其他指令似乎都正常工作.那应该怎么办?难道是我的编程,ROM中的错误,或者这只是为程序设置一个快速的方法DE来0x0000?
在python中,如果你有一个类foo,你可以为它创建一个自定义添加函数,如下所示:
class foo:
def __add__(self, other):
return stuff
Run Code Online (Sandbox Code Playgroud)
这可以让你做以下事情:
a = foo()
b = foo()
c = a + b
Run Code Online (Sandbox Code Playgroud)
C#中的等价物是什么?
c# ×2
emulation ×2
gameboy ×2
add ×1
dictionary ×1
function ×1
hash ×1
opcodes ×1
performance ×1
tostring ×1