ModuleBuilder에 대한 문서를 살펴보면 다른 매개 변수 사이에 문자열을 사용하는 DefineType 메서드가 있습니다.문자열에 포함 된 null을 포함 할 수 없습니까?
'쓰기에'매개 변수에 '포함 된 null을 포함 할 수 없습니다'라는 메시지가 표시됩니다.
그 의미는 무엇입니까?
ModuleBuilder에 대한 문서를 살펴보면 다른 매개 변수 사이에 문자열을 사용하는 DefineType 메서드가 있습니다.문자열에 포함 된 null을 포함 할 수 없습니까?
'쓰기에'매개 변수에 '포함 된 null을 포함 할 수 없습니다'라는 메시지가 표시됩니다.
그 의미는 무엇입니까?
문자열이 null로 끝나지 않으므로 (null로 끝남) 실제로 문자열 내에 null 문자 ('\ 0')를 저장할 수 있습니다. 작업 할 문자열에는이 특수 문자 중 하나를 사용할 수 없습니다. 여기
는 null 문자를 참조에서 문자열의 마이크로 소프트의 정의입니다 :
이 실제로 실제로 .NET에서 문자열 * 모두 * 길이 접두사 *와 * 널 (null) 종료되었습니다. OLE 자동화에서도 마찬가지입니다. BSTR에도이 속성이 있습니다. –
@Eric Lippert - Microsoft 설명서에서 'C# 문자열 끝에 null 문자가 없음' – IAmTimCorey
C# 사용자의 관점에서 null 문자를 종료하는 문자가 없습니다. 10 자의 문자열이 있고 10 번째 문자를 요청하면 null이 반환되지 않습니다. 그러나 구현 세부 사항으로, 프레임 워크는 실제로 여분의 2 바이트를 할당하고 실제로 거기에 제로 숯불을 넣지 않습니다. 비슷하게 구현 세부 사항으로서 런타임은 문자 데이터 앞에 메모리의 문자열 길이를 저장합니다. C# *에서 *를 알 수있는 방법이 없지만 디버거의 원시 메모리를 살펴 본다면 그것을 볼 수 있습니다. –