string write할 시에 Array.Copy한 이유
524
작성한 질문수 17
안녕하세요, string serialization을 할 때 Array.Copy를 한 이유에 대해서 다른 long, ushort등과같은 데이터들은 TryWriteBytes()메서드를 사용하여 바로 dest인 buffer에 바이트를 써 주는 메서드가 구현되어있지만, string을 인자로 받는 메서드와 byte배열을 받는 메서드는 없어서 GetBytes한 이후에 Array.Copy로 buffer배열에 직접 복사한것같은데, 맞을까요?

그럼 더 궁금한건, TryWriteBytes는 ValueType만 바이트로변환해서 dest에 쓸 수 있도록하는 메서드인거라고 이해하면 될까요? string, byte[]등과같은 reference type을 인자로 받는 메서드는 구현이 안되어있는 이유를 혹시 아시는지요?
답변 1
0
https://learn.microsoft.com/ko-kr/dotnet/api/system.bitconverter.trywritebytes?view=net-7.0
함수 관련된 질문은 하시면 안 되고 스스로 검색을 해보셔야 합니다.
보통 이런 serialization 연산을 할 때 참조 값은 모순적인데
참조란 단순히 주소값에 불과하고, 주소값은 다시 실행하면 날라가고 바뀌는 주소라
굳이 들고 있을 이유가 없습니다.
0
감사합니다. 제가 궁금한것은, 그 주솟값을 받아와서 메서드 내에서 byte처리해주고 복사해주는 TryWriteBytes와 같은 동작을 하는 메서드를 제공해주지않는 이유에 대해서 궁금했어서 검색을 해보았지만 제가 키워드를 잘 검색하지 못한 탓인지 왜 지원 하지않는지에 대한 답은 나오지 않아 혹시 아실까 싶어 질문드렸습니다. 다시한번 검색해보겠습니다.
0
자꾸 모든 것에 '이유'를 찾으려고 하시는데 그러시면 안 됩니다.
말 그대로 MS에서 그렇게 만든 것이고
엄청난 이유 없이 그냥 필요에 따라 그렇게 만든 것일 뿐입니다.
C#은 extension method 등으로 우리가 원하는 기능을 추가하기도 수월하고요.
TLS 질문드립니다.
0
57
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
57
2
Unity Span
0
82
2
XML, Dll 차이점
0
111
2
Session 질문입니다
0
84
1
Write Read 커서 키워드
0
79
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
76
2
네트워크 Send 전담 스레드 배치
0
100
2
UnhandledException 으로 서버 터지는 경우
0
91
2
컨텐츠 단, 엔진 단
0
108
1
질문 있습니다
0
78
2
C# 게임서버 3D MMORPG
0
153
2
유니티6 버전
0
100
2
receive하는 부분과 send하는 부분의 차이
0
135
2
커서의 위치의 중요성
0
105
2
C++ 전혀 모르는데 C# 서버
0
171
2
강의에 질문이 있습니다
0
89
2
멀티스레드 이해도 질문
0
98
1
500 vs 500
0
132
3
OnAcceptHandler 액션 함수
0
64
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
194
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
84
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
107
1
스핀락 질문.
0
111
2





