是否可以將某種自定義二進制數據存儲在字符串對象中?將數據保存爲字符串
例如,我有字符串"Hello!"
,它表示一個字節序列。
我可以在該字符串上存儲額外的字節嗎?只對我有意義嗎?
例如,表示字符串長度的額外字節。
有沒有辦法告訴.NET的解碼器(解碼這些字節)到忽略這些自定義字節?
是否可以將某種自定義二進制數據存儲在字符串對象中?將數據保存爲字符串
例如,我有字符串"Hello!"
,它表示一個字節序列。
我可以在該字符串上存儲額外的字節嗎?只對我有意義嗎?
例如,表示字符串長度的額外字節。
有沒有辦法告訴.NET的解碼器(解碼這些字節)到忽略這些自定義字節?
你真的不應該這樣做。如何創建一個你想要的課程:
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;
}
正是我想提出的建議。 – elnigno 2014-11-05 19:49:23
我會包含一個構造函數,它接受字符串值和字節值。 – Dismissile 2014-11-05 20:03:58
C#中的編碼約定是使用PascalCase作爲類名。 – 2014-11-05 22:09:41
對於長度的具體情況,'String'對象提供它已經,所以我不認爲需要將它存儲在「隱藏字節」中。但總的來說,你爲什麼要這麼做? – elnigno 2014-11-05 19:46:32
我試圖保存原始字符串的「* footprint *」,所以我可以從後面的操縱字符串中取回它。這個練習只是爲了好玩,儘管 – 2014-11-05 19:48:41
@MatiCicero字符串是不可變的,你不能「操縱」它們。 – 2014-11-05 19:49:29