小编The*_*lo2的帖子

Int32.ToString()太慢了

我有以下职位类别:

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.

c# hash performance dictionary tostring

13
推荐指数
1
解决办法
1240
查看次数

操作码 0xE9 (JP HL) 和 0xF8 (LD HL,SP+r8) 有什么作用?

我想我正在努力正确定义以下不明确的操作码:LD HL,SP+r8JP (HL)操作码(0xE90xF8分别)

在我的实现中,LD HL,SP+r8设置HL为 的值SP+r8,但我感觉这可能与从 RAM 加载内存有关。 JP (HL),我已经PUSH将 PC 放到堆栈上并将程序计数器设置为 HL 的值(就像JP a16,除了 HL 的值),但我读过一些论坛,似乎说这是错误的。

任何对这些指令所做的任何澄清都会很棒,因为我现在很迷茫。

emulation opcodes gameboy

3
推荐指数
1
解决办法
774
查看次数

Gameboy模拟器弹出空堆栈

我正在开发一个Gameboy模拟器,我已经在ROM中找到了一个点,我得到了操作码0xD1(弹出DE堆栈)但是堆栈是空的(没有值被推到它上面).所有未知的操作码都返回错误,所有其他指令似乎都正常工作.那应该怎么办?难道是我的编程,ROM中的错误,或者这只是为程序设置一个快速的方法DE0x0000

emulation gameboy

2
推荐指数
1
解决办法
351
查看次数

如何在C#中为类创建自定义添加方法

在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# function add

0
推荐指数
1
解决办法
171
查看次数

标签 统计

c# ×2

emulation ×2

gameboy ×2

add ×1

dictionary ×1

function ×1

hash ×1

opcodes ×1

performance ×1

tostring ×1