【发布时间】:2011-01-25 19:44:52
【问题描述】:
我注意到在 C# 中同时存在 byte 和 Byte 数据类型。他们都说他们是 struct System.Byte 类型并表示一个 8 位无符号整数。
所以我很好奇这两者之间有什么区别,以及为什么你会使用一个而不是另一个。
谢谢!
【问题讨论】:
我注意到在 C# 中同时存在 byte 和 Byte 数据类型。他们都说他们是 struct System.Byte 类型并表示一个 8 位无符号整数。
所以我很好奇这两者之间有什么区别,以及为什么你会使用一个而不是另一个。
谢谢!
【问题讨论】:
byte 关键字是 System.Byte 数据类型的别名。
它们代表相同的数据类型,因此生成的代码是相同的。只是用法上有些区别:
即使不包括 System 命名空间,您也可以使用 byte。要使用Byte,您必须在页面顶部有一个using System;,或者指定完整的命名空间System.Byte。
有几种情况C#只允许你使用关键字,而不是框架类型,例如:
.
enum Fruits : byte // this works
{
Apple, Orange
}
enum Fruits : Byte // this doesn't work
{
Apple, Orange
}
【讨论】:
byte 和 C# 中的System.Byte 是相同的。 byte 只是语法糖,被 StyleCop 推荐(用于样式指南)。
【讨论】:
没有区别。 byte 是 System.Byte 的别名,同样int 是 System.Int32 的别名,long 是 System.Int64,string 是 System.String 的别名,...
【讨论】:
C# 有许多 .NET 类型的别名。 byte 是 Byte 的别名,正如 string 是 String 的别名和 int 是 Int32 的别名一样。 IE。 byte 和 Byte 是相同的实际类型。
【讨论】:
没什么,小写的是关键字,是字节类型的别名。
这是纯粹的语法糖。
【讨论】:
它们通常是相同的。
【讨论】:
byte 是 C# 中的内置数据类型。System.Byte 是表示 byte 的结构,并提供了额外的方法,例如 Parse 和 TryParse。
byte 是 System.Byte 结构的别名。不同的 .NET 语言根据特定语言的语义具有不同的别名,但它们都映射到 .NET 框架中的特定类型。
【讨论】:
在使用反射时,,,,
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 100% 相同。没有任何区别。这与 Java 不同,它们实际上是离散的类。