2014-11-05 85 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

相关问题