2014-11-05 2 views
0

문자열 개체에 일종의 사용자 지정 바이너리 데이터를 저장할 수 있습니까?문자열에 데이터 저장

예를 들어, 바이트 시퀀스를 나타내는 "Hello!" 문자열이 있습니다.

나에게 의미있는 문자열에 추가 바이트를 저장할 수 있습니까?

예를 들어, 문자열의 길이를 나타내는 여분의 바이트.

에 .NET의 디코더 (이 바이트를 디코딩)에게 사용자 지정 바이트를 무시하도록 지시하는 방법이 있습니까?

+3

,'String' 개체는 이미 제공 그래서 "숨겨진 바이트"에 저장할 필요가 없습니다. 하지만 일반적으로 왜 그렇게하고 싶습니까? – elnigno

+0

원래 문자열의 "* footprint *"를 저장하려고하므로 나중에 조작 된 문자열에서 다시 검색 할 수 있습니다. 이 연습은 단지 재미를위한 것입니다. –

+2

@MatiCicero 문자열은 변경할 수 없으므로 "조작"할 수 없습니다. –

답변

4

정말 그렇게 생각하면 안됩니다. 원하는 것을 수행하는 클래스를 작성하는 방법 :

public class myString 
{ 
    public string stringValue; 
    public byte someSpecialByte; 
    public override string ToString() 
    { 
    return stringValue; 
    } 
} 

그런 다음 클래스에 원하는 정보를 저장할 수 있습니다.

myString s = new myString(); 
s.stringValue = "Hello!" 
s.someSpecialByte = 0; 

편집 (생성자 코멘트에 대응) :

클래스에이 추가 : 길이의 구체적인 사례를 들어

public myString(){} //default constructor 
public myString(string sValue, byte specialByte) 
{ 
    stringValue = sValue; 
    someSpecialByte = specialByte; 
} 
+0

정확히 내가 제안하려고했던 것. – elnigno

+0

문자열 값과 바이트 값을 사용하는 생성자를 포함합니다. – Dismissile

+0

C#의 코딩 규칙은 클래스 이름에 PascalCase를 사용하는 것입니다. –