número de garantir é lançado corretamente no .NET
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);
Solução
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;