Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C中字节与字节数据类型之间的差异#_C#_Byte - Fatal编程技术网

C# C中字节与字节数据类型之间的差异#

C# C中字节与字节数据类型之间的差异#,c#,byte,C#,Byte,我注意到C#中既有字节数据类型,也有字节数据类型。它们都表示它们属于struct System.Byte类型,表示8位无符号整数 所以我很好奇,如果两者之间有什么区别,为什么你会使用一个而不是另一个 谢谢 无差异byte是System.byte的别名,同样地,int是System.Int32的别名,long是System.Int64的别名,string是System.string的别名,它们通常是相同的。byte和System.byte在C中是相同的byte只是一种语法糖,StyleCop(用于

我注意到C#中既有字节数据类型,也有字节数据类型。它们都表示它们属于struct System.Byte类型,表示8位无符号整数

所以我很好奇,如果两者之间有什么区别,为什么你会使用一个而不是另一个


谢谢

无差异
byte
是System.byte的别名,同样地,
int
是System.Int32的别名,
long
是System.Int64的别名,
string
是System.string的别名,它们通常是相同的。

byte
System.byte
在C中是相同的
byte
只是一种语法糖,StyleCop(用于样式指南)推荐它。

C#有许多用于.NET类型的别名
byte
byte
的别名,正如
string
string
的别名,
int
Int32
的别名。也就是说,
byte
byte
是相同的实际类型

无,小写字母是一个关键字,是字节类型的别名


这是纯粹的语法糖。

关键字
byte
System.byte
数据类型的别名

它们表示相同的数据类型,因此生成的代码是相同的。在用法上只有一些不同:

  • 即使未包括
    系统
    命名空间,也可以使用
    字节
    。要使用
    字节
    您必须拥有
    使用系统
    位于页面顶部,或指定完整的命名空间
    System.Byte

  • 在一些情况下,C#只允许使用关键字,而不允许使用框架类型,例如:


byte
是C#中的内置数据类型。
System.Byte
是一个表示
Byte
的结构,并提供额外的方法,如
Parse
TryParse


byte
System.byte
struct的别名。不同的.NET语言根据特定语言的语义有不同的别名,但它们都映射到.NET framework中的特定类型。

使用反射时

Type t=Type.GetType("System.Byte"); //works

Type t=Type.GetType("System.byte"); //doesn't work, I can see no way to use"byte" directly here without converting it to "Byte"

事实上,字节被称为System.byte的别名,没有“将其转换为字节”的概念。字节和
系统。字节
完全相同。没有任何区别。这与Java不同,Java实际上是离散类。如果使用GetBytes()@RadhaManohar byte[]/byte[],将返回什么。同一事物有两个名字。甚至MSDN文档也在它们之间切换;签出(在进行此注释时,方法签名中的返回类型为byte[],文档中的返回类型为byte[])
Type t=Type.GetType("System.Byte"); //works

Type t=Type.GetType("System.byte"); //doesn't work, I can see no way to use"byte" directly here without converting it to "Byte"