Разница между байтовыми и байтовыми типами данных в C #

Я заметил, что в C # есть как тип данных byte, так и Byte. Оба они говорят, что относятся к типу struct System.Byte и представляют собой 8-значное целое число без знака.

Поэтому мне любопытно, какая разница между ними, и почему вы бы использовали одно вместо другого.

Спасибо!


person jaywon    schedule 10.03.2010    source источник


Ответы (8)


Ключевое слово 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
}
person Guffa    schedule 10.03.2010
comment
что будет возвращено, если я использую GetBytes () - person Radha Manohar; 09.01.2020
comment
@RadhaManohar байт [] / Байт []. Два имени для одного и того же. Даже документация MSDN переключается между ними; ознакомьтесь с Encoding.GetBytes MSDN (который на момент написания этого комментария имел byte [] в качестве возвращаемого типа в сигнатуре метода и Byte [] в качестве возвращаемого типа в документации) - person Christopher Berman; 15.01.2020

byte и System.Byte в C # идентичны. byte - это просто синтаксический сахар и рекомендуется StyleCop (для руководства по стилю).

person Adam Maras    schedule 10.03.2010
comment
Фактически байт называется псевдонимом System.Byte. - person Patrick Peters; 10.03.2010

Нет разницы. byte - это псевдоним System.Byte, точно так же int - псевдоним System.Int32, long - System.Int64, string - System.String, ...

person Darin Dimitrov    schedule 10.03.2010

В C # есть несколько псевдонимов для типов .NET. byte - это псевдоним для Byte, так же как string - это псевдоним для String, а int - псевдоним для Int32. Т.е. byte и Byte относятся к одному и тому же типу.

person Brian Rasmussen    schedule 10.03.2010

Ничего, нижний регистр - это ключевое слово, которое является псевдонимом для типа Byte.

Это чистый синтаксический сахар.

person Gerrie Schenck    schedule 10.03.2010

Они вообще одинаковые.

person Aurril    schedule 10.03.2010

byte - это встроенный тип данных в C #.
System.Byte - это структура, представляющая byte и предоставляющая дополнительные методы, такие как Parse и TryParse.

byte - это псевдоним структуры System.Byte. Разные языки .NET имеют разные псевдонимы в зависимости от семантики конкретного языка, но все они соответствуют определенным типам в платформе .NET.

person ata    schedule 10.03.2010

также при использовании отражения ,,,

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"
person Colin    schedule 26.04.2011
comment
Преобразования в байтовую концепцию нет. byte и System.Byte идентичны на 100%. Никакой разницы нет. Это не похоже на Java, где они фактически являются дискретными классами. - person Kirk Woll; 27.04.2011