将数据保存为字符串
是否可以将某种自定义二进制数据存储在字符串对象中?将数据保存为字符串
例如,我有字符串"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