byte应该是字节。
char应该是字符。
string,应该是字符串。
三者之间区别
char 在C#中是值类型(Value Type)。因此,一个 char 类型的对象所占用的控件总是确定的(不要认为是1个字节!Byte才是)。它永远是2个字节(因为其定义就是16位Unicode字符,详见MSDN)。
byte 是字节型(0 - 255)
在参与算术运算是char类型会自动转为整型;如字符A会转为对应ASCII码65.
char是用来表示一个字符,而不是一个字,因为一个字要占用两个字节。而存储一个ANSI字符只需一个字节。注意,强调是ANSI字符,而不是Unicode字符。因为Unicode要占用两个字节。
byte类型是最自由的一种。它就占用一个字节,但没有定义这个字节拿来干什么。char定义为一个Unsigned Byte类型。也就是无符号的一个字节。它将一个字节的8位全占用了。可以表示的数据范围是0到255之间。C#中,string是引用类型(Reference Type,即使在某些方面有一定值类型的特点)。因此,string对象占用的空间是可变的,理论上只受内存限制,也无法通过 sizeof 来取得的。
其用法当然也是众所周知的:
1、char 类型用单引号和一个字符来表示,例如: 'A' ,或者 '谢' 。那么要表示多个字符怎么办,就用字符数组 char [] 就可以了。
这里还需要注意一个问题,就是C++里面将一个汉字赋值给一个char类型变量会丢失信息(因为其只占用1个字节),而应该用wchar_t类型。
2、string 类型用双引号表示,例如:"你好再见。"
通过字节长度进行判断吧
byte[] bytestr = System.Text.Encoding.Unicode.GetBytes(str);
MessageBox.Show(bytestr.Length.ToString());
能定义一个5字节的例子吗?
static void Main(string[] args)
{
byte[] bytes = { 65, 66, 67, 68, 69 };
string s = System.Text.Encoding.Default.GetString(bytes);
Console.WriteLine(s);//ABCDE
Console.ReadLine();
}