c#中byte 与 Byte数据类型的区别

本问题已经有最佳答案,请猛点这里访问。

我注意到在c#中有字节和字节数据类型。它们都表示属于struct System类型。表示一个8位无符号整数。

所以我很好奇这两者之间有什么区别,以及为什么你会用一个而不用另一个。

谢谢!


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

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

即使没有包含System名称空间,也可以使用byte。要使用Byte,您必须在页面顶部有一个using System;,或者指定完整的名称空间System.Byte

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

1
2
3
4
5
6
7
8
9
enum Fruits : byte // this works
{
  Apple, Orange
}

enum Fruits : Byte // this doesn't work
{
  Apple, Orange
}

c#中的byteSystem.Byte是相同的。byte是简单的语法糖,是StyleCop推荐的(用于样式指南)。


没有区别。byte是系统的别名。字节,与系统别名int相同。Int32, long到系统。Int64, string到系统。字符串,…


没有,小写的是一个关键字,它是字节类型的别名。

这是纯粹的语法糖。


c#有许多. net类型的别名。byteByte的别名,正如stringString的别名,intInt32的别名一样。即byteByte是相同的实际类型。


它们通常是一样的。


当使用反射…

1
2
3
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"


byte是c#中的内置数据类型。System.Byte是一个表示byte的结构,它提供了像ParseTryParse这样的额外方法。

byteSystem.Byte结构的别名。基于特定语言的语义,不同的. net语言有不同的别名,但是它们都映射到. net框架中的特定类型。