クラス外からSetData()メソッドを呼び出すときに0xD0ではなくインデックス0でバイト0x00が返されるのはなぜですか?ByteArrayの同じ要素の値が異なりますか?
は、ここでは、クラスのダウン短縮ます:
using System;
namespace StackOverflow
{
class SaveBlock
{
const short SECTIONS = 14, SECTION_SIZE = 4096;
public Section[] sections = new Section[SECTIONS];
public SaveBlock(byte[] blockData) {
byte[] sectionData = new byte[SECTION_SIZE];
for (int i = 0; i < SECTIONS; i++) {
Array.Copy(blockData, SECTION_SIZE * i, sectionData, 0, SECTION_SIZE);
sections[i] = new Section(sectionData);
}
}
public void SetForAll() {
foreach (Section sect in sections)
sect.SetData();
}
}
}
そして私はのために別のバイトを取得します。セクションのコンストラクタではなく、このような外部ソースから呼び出された場合
using System;
namespace StackOverflow
{
class Section
{
uint _sectionId;
byte[] _sectionData;
public Section(byte[] sectionData) {
_sectionData = sectionData;
_sectionId = GetUShort(0x0FF4);
Console.WriteLine(_sectionId + ": " + _sectionData[0].ToString("X")); // Gives D0
}
public void SetData() {
switch (_sectionId) {
case 0: SetTrainerInfo(); break;
default: break;
}
}
void SetTrainerInfo() {
Console.WriteLine(_sectionId + ": " + _sectionData[0].ToString("X")); // Can Give 0
byte[] deByte = GetBytes(0x00, 7);
TrainerInfo.playerName = PkmString.GetString(deByte);
Console.WriteLine(TrainerInfo.playerName + "name here");
}
}
}
ここにあなたのコードを貼り付けない理由は何ですか? –
@ L.Bコードは、私の経験、特にUnity Answersのようなサイトでフォーマットが悪くなる傾向があります。 – Vyra
そして私の編集後に今思うことは? OK?。あなたのたわごとを投稿し続けるだけです。私はそれを編集することができます:) –