Pergunta

Eu sei que eu posso atribuir um valor especificamente para um float, fazendo

float y = 4.5f;

Eu quero fazer a mesma coisa, exceto como um byte. Como eu faço isso? Eu verifiquei a documentação MSDN e não consigo encontrar nada relacionado a isso. Além disso, o que é esta chamada?

Obrigado,

[Edit]

Para maior clareza o código que estou usando isso em é

byte myByte = a==b?1:0;

e o erro que recebo é

Não é possível converter implicitamente tipo 'int' 'Byte? A. Uma conversão explícita existe (faltam um elenco?)

Solução

byte myByte = (byte)(a==b?1:0);
Foi útil?

Solução

tipos

O byte, sbyte, short e ushort dados não têm sufixos designados. No entanto, literal inteiro pode ser atribuído às variáveis ??destes tipos de dados e serão convertidos implicitamente, assumindo que o valor é adequado para armazenamento na variável. Apenas para o registro aqui estão os literais definidos em C #:

uint: U or u
long: L or l
ulong: UL or ul
float: F or f
decimal: M or m

Outras dicas

Gostaria apenas de usar um elenco.

// Okay
Byte data = (Byte) 57;

// Error (but I don't know if it is a compiler error or a runtime error)
Byte data = (Byte) -17;

ou introduzir uma constante.

// Okay
const Byte foo = 57;
Byte data = foo;

// Compiler Error
const Byte foo = -17;
Byte data = foo;

De acordo com a este post , byte não tem esse sufixo.

Você não precisa de um sufixo ao definir um byte:

   byte b = 1;

Você só precisa garantir que o seu valor está entre 0 e 255.

MSDN refere-se ao uso da F como um 'sufixo', forçando um Tipo Literal.

Consulte o seguinte artigo em C-sharp Online para mais informações

notação Hex:

b = 0xFF Byte;

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top