REQUEST)
byte[] messageBytes = new byte[delimiterIndex];
Array.Copy(data, 0, messageBytes, 0, delimiterIndex);
byte[] transactionCodeBytes = messageBytes[0..5];
--------messageBytes[0..5]-------------------------------------------
위는 5바이트 인가요?

RESPONSE)

네, byte[] transactionCodeBytes = messageBytes[0..5];는 5바이트의 배열을 의미합니다.

C#에서 messageBytes[0..5] 구문은 messageBytes 배열의 0번 인덱스부터 5번 인덱스까지의 부분 배열을 생성합니다. 이는 0부터 4까지 인덱스를 포함하므로 총 5개의 바이트가 됩니다.

구체적으로:

  • messageBytes[0..5]는 messageBytes 배열의 0번 인덱스부터 4번 인덱스까지의 바이트를 포함한 배열입니다.
  • 배열 인덱스 범위는 [startIndex..endIndex) 형식이므로, 0..5는 0부터 4까지, 총 5개의 바이트를 포함합니다.

예시:

byte[] messageBytes = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };
byte[] transactionCodeBytes = messageBytes[0..5]; // [0, 1, 2, 3, 4] 바이트 포함


REQUEST)
messageBytes[0..4] 가 5바이트 아닌가요?

RESPONSE)

messageBytes[0..4]는 5바이트가 아니라 4바이트입니다.

C#에서 messageBytes[0..4] 구문은 0번 인덱스부터 3번 인덱스까지의 바이트를 포함하는 부분 배열을 생성합니다. 이는 인덱스가 0부터 시작하고, 4는 포함되지 않기 때문에 총 4개의 바이트를 반환합니다.

인덱스 범위 설명:

  • messageBytes[0..4]는 0, 1, 2, 3번 인덱스를 포함하는 부분 배열이므로, 총 4개의 바이트입니다.
  • [start..end) 범위에서 end는 포함되지 않습니다.

예시:

byte[] messageBytes = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };
byte[] transactionCodeBytes = messageBytes[0..4]; // [0, 1, 2, 3] 바이트 포함

이 경우, transactionCodeBytes는 [0x01, 0x02, 0x03, 0x04] 값이 포함된 4바이트 배열이 됩니다.

+ Recent posts