我注意到在C#中有字节和字节数据类型。他们都说它们是 struct System.Byte 类型,代表一个8位无符号整数。
所以我很好奇两者之间有什么不同,以及为什么你会使用另一个。
谢谢!
答案 0 :(得分:135)
byte
关键字是System.Byte
数据类型的别名。
它们表示相同的数据类型,因此生成的代码是相同的。用法上只有一些差异:
即使未包含byte
命名空间,也可以使用System
。要使用Byte
,您必须在页面顶部添加using System;
,或指定完整的命名空间System.Byte
。
在某些情况下,C#只允许您使用关键字,而不是框架类型,例如:
enum Fruits : byte // this works
{
Apple, Orange
}
enum Fruits : Byte // this doesn't work
{
Apple, Orange
}
答案 1 :(得分:25)
byte
和System.Byte
是相同的。 byte
只是语法糖,并且是StyleCop推荐的(用于样式指南)。
答案 2 :(得分:8)
没有区别。 byte
是System.Byte的别名,同样int
是System.Int32的别名,long
是System.Int64,string
是System.String,...
答案 3 :(得分:6)
C#有许多.NET类型的别名。 byte
是Byte
的别名,因为string
是String
的别名,int
是Int32
的别名。即byte
和Byte
是相同的实际类型。
答案 4 :(得分:6)
没有,小写的是关键字,它是字节类型的别名。
这是纯粹的语法糖。
答案 5 :(得分:4)
它们通常是相同的。
答案 6 :(得分:0)
byte
是C#中的内置数据类型
System.Byte
是一个代表byte
的结构,并提供了Parse
和TryParse
等额外方法。
byte
是System.Byte
struct的别名。根据特定语言的语义,不同的.NET语言具有不同的别名,但它们都映射到.NET框架中的特定类型。
答案 7 :(得分:0)
当使用反射,,,
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"