Вопрос

I'm trying to initialize inline an array of UInt16. For int I can do the following:

int[] int_array = new[]{0,0,0,0};

meanwhile using UInt16 doesn't work without a cast:

UInt16[] uint16_array= new[]{(UInt16)0,(UInt16)0};

It's quite annoying do those casts. I was wondering if there is any suffix in C# to disambiguate the assignment (like 0.0f for float).

Это было полезно?

Решение

I don't think there is one, but why don't you do this instead

UInt16[] uint16_array= new UInt16[] { 0, 0, 0, 0 };

Другие советы

C# doesn't have a type suffix for unsigned 16-bit integers. VB.NET does though, just for reference:

Dim number As UShort = 8US

Here's another resource that lists the different suffixes.

Here's an even shorter way than Corey's:

ushort[] uint16_array = { 0, 0, 0, 0 };

(or)

UInt16[] uint16_array = { 0, 0, 0, 0 };
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top