Programing

.NET에서 바이트의 리터럴 접미사?

crosscheck 2020. 6. 9. 08:09
반응형

.NET에서 바이트의 리터럴 접미사?


float 또는 double과 같은 짧은 방법으로 바이트 변수를 선언하는 방법이 있는지 궁금합니다. 내가 좋아하는 것을 의미 5f하고 5d. 물론 쓸 수 byte x = 5는 있지만 var지역 변수에 사용하면 약간 중요하지 않습니다 .


온 리터럴 접미사에 대한 언급이 없다 바이트에 대한 MSDN 참조 뿐만 아니라에서 C # 4.0 언어 사양 . C #에서 유일한 리터럴 접미사는 다음과 같이 정수 및 실수입니다.

u = uint
l = long
ul = ulong
f = float
m = decimal
d = double

을 사용 var하려면 항상 다음과 같이 바이트를 캐스트 할 수 있습니다var y = (byte) 5

실제로는 관련이 없지만 C # 7에서는 0b숫자가 이진 형식 임을 나타내는 새로운 이진 접두사가 도입되었습니다 . 그래도 바이트로 만들 접미사가 없습니다 (예 :

var b = 0b1010_1011_1100_1101_1110_1111; //int

그래서 지난 가을 VB에 이진 리터럴을 추가했으며 초기 테스터로부터 비슷한 피드백을 받았습니다. VB의 바이트 접미사를 추가하기로 결정했습니다. 우리는 SB (부호있는 바이트)와 UB (부호없는 바이트)를 정했다. B와 SB가 아닌 이유는 두 가지입니다.

하나, B 접미어는 16 진수 (0xFFB는 무엇을 의미합니까?)로 작성하는 경우 모호하며 'B'이외의 다른 문자가 있거나 ( 'Y'로 간주되면 F #에서 사용합니다) no .NET 바이트는 기본적으로 부호가 없으므로 B와 SB를 선택하는 것이 합리적이지만 다른 모든 접미사는 기본적으로 부호가 있으므로 B를 선택하는 다른 유형 접미사와 일치합니다. UB. 결국 우리는 명백한 SB와 UB에 갔다. -Anthony D. Green,

https://roslyn.codeplex.com/discussions/542111

분명히 그들은 VB.NET 에서이 이동을 수행 한 것으로 보이며 (지금은 릴리스되지 않을 수도 있음) 그들은 C #을 위해 roslyn에서 구현 할 수 있습니다-당신이 원하는 것으로 생각하면 투표하십시오. 가능한 구문을 제안 할 기회도 있습니다.


에서 MSDN 페이지, 당신의 유일한 옵션은 명시 적으로 (주조에있는 것으로 보인다 var x = (byte)5), 또는 사용을 중지 var...


MSDN에 따라 10 진수, 16 진수 또는 2 진 리터럴을 사용하여 바이트를 선언 할 수 있습니다.

// decimal literal
byte x = 5;

// hex decimal literal
byte x = 0xC5;

// binary literal
byte x = 0b0000_0101;

참고 URL : https://stackoverflow.com/questions/5378036/literal-suffix-for-byte-in-net

반응형