2014-11-05 76 views
0

是否可以將某種自定義二進制數據存儲在字符串對象中?將數據保存爲字符串

例如,我有字符串"Hello!",它表示一個字節序列。

我可以在該字符串上存儲額外的字節嗎?只對我有意義嗎?

例如,表示字符串長度的額外字節。

有沒有辦法告訴.NET的解碼器(解碼這些字節)到忽略這些自定義字節?

+3

對於長度的具體情況,'String'對象提供它已經,所以我不認爲需要將它存儲在「隱藏字節」中。但總的來說,你爲什麼要這麼做? – elnigno 2014-11-05 19:46:32

+0

我試圖保存原始字符串的「* footprint *」,所以我可以從後面的操縱字符串中取回它。這個練習只是爲了好玩,儘管 – 2014-11-05 19:48:41

+2

@MatiCicero字符串是不可變的,你不能「操縱」它們。 – 2014-11-05 19:49:29

回答

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 2014-11-05 19:49:23

+0

我會包含一個構造函數,它接受字符串值和字節值。 – Dismissile 2014-11-05 20:03:58

+0

C#中的編碼約定是使用PascalCase作爲類名。 – 2014-11-05 22:09:41

相關問題