Разница между байтами и байтовыми типами данных в С#
Я заметил, что в С# есть тип данных byte и Byte. Они оба говорят, что они имеют тип struct System.Byte и представляют собой 8-значное целое число без знака.
Так что мне любопытно, какая разница, если таковая существует между двумя, и почему вы будете использовать один над другим.
Спасибо!
Ответы
Ответ 1
Ключевое слово byte
- это псевдоним для типа данных System.Byte
.
Они представляют один и тот же тип данных, поэтому полученный код идентичен. Существуют только некоторые различия в использовании:
-
Вы можете использовать byte
, даже если пространство имен System
не включено. Чтобы использовать byte
, вы должны иметь using System;
в верхней части страницы или указать полное пространство имен System.Byte
.
-
Есть несколько ситуаций, когда С# позволяет вам использовать ключевое слово, а не тип фрейма, например:
.
enum Fruits : byte // this works
{
Apple, Orange
}
enum Fruits : Byte // this doesn't work
{
Apple, Orange
}
Ответ 2
byte
и System.Byte
в С# идентичны. byte
является просто синтаксическим сахаром и рекомендуется StyleCop (для руководства по стилю).
Ответ 3
Никакой разницы. byte
является псевдонимом System.Byte, таким же образом int
является псевдонимом System.Int32, long
для System.Int64, string
для System.String,...
Ответ 4
С# имеет ряд псевдонимов для типов .NET. byte
является псевдонимом для byte
, так как string
является псевдонимом для string
, а int
является псевдонимом для Int32
. То есть byte
и byte
являются одним и тем же фактическим типом.
Ответ 5
Ничего, нижний регистр - это ключевое слово, которое является псевдонимом для типа байтов.
Это чистый синтаксический сахар.
Ответ 6
Они, как правило, одинаковы.
Ответ 7
byte
- это встроенный тип данных в С#.
System.Byte
- это структура, которая представляет byte
и предоставляет дополнительные методы, такие как Parse
и TryParse
.
byte
является псевдонимом структуры System.Byte
. Различные языки .NET имеют разные псевдонимы, основанные на семантике конкретного языка, но все они сопоставляются определенным типам в .NET framework.
Ответ 8
также при использовании отражения,,
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"