首先,介绍byte[]
初始化
- 利用
for
循环赋值是比较基本的方法 - C#中,创建一个长度为
size
的byte数组,并且其中每个字节赋值为0
byte[] myByteArray = new byte[size];
C# 在创建数值型(int, byte)
数组时,会自动的把数组中的每个元素赋值为0. (注:如果是string[], 则每个元素为的值为null
.
- 创建一个长度为10的byte数组,并且其中每个
byte
的值为0x08
.
byte[] myByteArray = Enumerable.Repeat((byte)0x08, 10).ToArray();
用linq
来赋值,语句只要一条, 当然我们还可以赋值不同的,但是有一定规律的值。
byte[] res= Enumerable.Range(1, 1000).Select(c=>Convert.ToByte(c)).ToArray();
- 对于2中,虽然C#自动赋值,但是在输出时,按照
Encoding.ASCII.GetString(myByteArray )
输出,则显示不出000000
字符串。例如:
源码(注释掉赋值操作):
byte[] bytes = new byte[10];
//for (int i = 0; i < 10; i++)
//{
// bytes[i] = 0x30;
//}
string str = BitConverter.ToString(bytes);
string str1 = Encoding.ASCII.GetString(bytes);
Console.WriteLine("BitConverter.ToString + Encoding.ASCII.GetString" + str + "\\ " + str1);
Console.ReadKey();
结果如下:打印不出
image.png
当去掉注释,结果如下:
image.png
很迷,之后解答!!!
网友评论