C#byte是什么类型啊?

如题所述

C#中对byte类型的处理还是很特殊的。
下面用几行简单的代码来说明问题
byte x=1;
byte y=2;
byte z=x+y; //error:无法将int类型转换为byte类型
1.可能很多会认为这段代码没有问题,实际上第三行会产生编译错误:无法将int类型转换为byte类型!

2.因为C#编译器会认为byte类型和byte类型运算的结果是int型,实际上对short类型也做了相似的处理。

3.至于为什么这样设计,因为byte或short类型相互运算比较容易发生溢出,所以在运算的时候直接都转换为int来运算了。

4.再看下面的代码
byte i=1; //OK
这里的字面值1是被编译器识别为int类型的,在以上声明中,整数1
从 int 类型隐式转换为 byte 类型。如果整数超出了 byte 类型的范围,则将发生编译错误。

5.上面是MSDN中的说法,实际上这个隐式转换违背了范围小的类型可以隐式转换为范围大的类型这条规则,但是在C#中这个转换的确是合法的。
注意这个转换只有用整型的字面值来赋值运算的时候才成立,像这样就不可以了
int x=1;
byte i=x; //error: 无法将int类型转换为byte类型

6.在看下面的代码:
byte i=1;
i+=1; //OK
这行代码是可以通过的,原因是C#中x+=y并不是总相当于x=x+y的!
如果x+y的结果的类型可以隐式转换为x的类型,那么x+=y相当于x=x+y
如果x+y的结果的类型可以显式转换为x的类型,并且x=y也合法,那么x+=y相当于x=(T)(x+y),其中T是x的类型。

7.就像上面这行代码,i+1是int类型的,可以显式转换为byte类型,而i=1也合法,所以i+=1就相当于i=(byte)(i+1)
i=i+1; //error:无法将int类型转换为byte类型
这行比较容易理解,1被编译器识别为int类型,所以i+1的结果是int类型的,无法将int类型转换为byte类型
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-12-14
来晚了...字节
第2个回答  2009-12-14
二进制
第3个回答  2009-12-14
字节类型本回答被提问者采纳
第4个回答  2009-12-14
2进制

C# 关键字=byte 整型数值类型(C# 参考语言语句运用)
C#的关键字如byte,代表整型数值类型,这些类型都是值类型,支持算术、位逻辑、比较和相等运算。C#提供了多种预定义整型类型,包括nint和nuint,它们是本机大小的整数,与.NET类型相关但不可互换。整数类型的默认值为0,且每个类型都有相应的最小值和最大值。System.Numerics.BigInteger用于无界整数。整数...

才c#中byte是字符类型
字节型。char是字符型byte是字节型(0-255)byte[]arrByte=System.Text.Encoding.Default.GetBytes(str);在char和string之间的转化char[arrChar=str.ToCharArray()将char[]转化为stringchar[]aa=str.ToCharArray(。)strings=newstring(aa)。

找大虾,讲解一下c#中byte的用法
byte 关键字代表一种整型,该类型按下表所示存储值:可如下例所示声明并初始化 byte 类型的变量:byte myByte = 255;在以上声明中,整数 255 从 int 隐式转换为 byte。 如果整数超出了 byte 的范围,将产生编译错误。

C# byte[] \\char[] \\string的区别?
byte 是字节型,字节,就是储存数据的一种单位而已,一般用于二进制文件的读写。char 是字符型,字符,就是单个的字母、数字、符号等等。string 是字符串型,字符串,就是若干个字符。而且 byte[] 和 char[] 都是数组类型,string 是变量类型,三者没法直接比较。要么是 byte[]、char[]、string[]...

有关c#代码中 “byte[] 变量名” 的问题?
byte就是类型的数据,byte[]是定义的数组啊,另外string 和string[]是不一样的,string相当于是一个char[],char类型的数组,而string[]就是平时指的字符串数组

c#值类型和引用类型的区别
1、值类型:包括:sbyte、short、int、long、float、double、decimal(以上值类型有符号)byte、ushort、uint、ulong(以上值类型无符号)bool、char2、引用类型:包括:对象类型、动态类型、字符串类型。二、具体区别:1、值类型:byteb1=1;byteb2=b1;Console.WriteLine("{0},{1}。",b1,b2);b2=2;...

C# 关键字=byte 整型数值类型(C# 参考语言语句运用)
byte、short、ushort、uint、ulong、nint或nuint。若不在范围内,将出现编译器错误。若需转换为未确定的文本类型,可使用强制转换。任何整型数值类型皆能转换至其他整数类型,若目标类型能存储源类型的所有值,则为隐式转换。否则需使用强制转换表达式执行显式转换。详情见内置数值转换。

C#中bytes 和Bytes的区别
byte是C#的关键字(属于语言), Byte是.net框架里的struct 区别就是一个属于语言,一个属于"环境".在.net下可以认为他们是没有区别的.

C#中byte就是一0到255的整数,它有什么用啊?什么场合下用啊?有经验的...
byte是0-255 正好和8位二进制数表示长度一致 11111111 ,在32位系统中一个字节正好是8位,所以这个数据类型一般是做内存中的一些特殊算法设计的,比如位运输,左移,右移,还有一项特殊数据结构比如读写文件的字节数组byte[]等等和系统底层有关的这些,当然你把它当成小范围的整型类型也可以用 ...

C#中值类型和引用类型的区别
1、值类型:包括:sbyte、short、int、long、float、double、decimal(以上值类型有符号)byte、ushort、uint、ulong(以上值类型无符号)bool、char2、引用类型:包括:对象类型、动态类型、字符串类型。二、具体区别:1、值类型:byteb1=1;byteb2=b1;Console.WriteLine("{0},{1}。",b1,b2);b2=2;...

相似回答