public void TryUi16Test1() { ushort test = 0x1234; MemoryObj memory = new MemoryObj(8); // 例外が起きず失敗できるか Assert.IsFalse(memory.TrySetUi16(10, 0), "設定できないのに,設定できてます"); Assert.IsFalse(memory.TryGetUi16(10, out ushort _), "取得できないのに,取得できてます"); // 成功するか Assert.IsTrue(memory.TrySetUi16(0, 0), "設定できるのに,設定できてません"); Assert.IsTrue(memory.TryGetUi16(0, out ushort _), "取得できるのに,取得できてません"); // 設定,取得できるか memory = new MemoryObj(8); ushort result; if (!memory.TrySetUi16(0, test)) { Assert.Fail("設定に失敗しました"); } if (!memory.TryGetUi16(0, out result)) { Assert.Fail("取得に失敗しました"); } Assert.AreEqual( test, result, "取得はできたが,取得内容に差異があります"); }
public bool OpLoadW(BytecodeStream code) { int regId = code.ReadByte(); int memPtr = code.ReadChar(); if (_memory.TryGetUi16(memPtr, out ushort val16)) { return(TrySetRegUi16(regId, val16)); } return(PushError($"メモリ範囲外を指定しました => ptr: {memPtr}")); }