NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

ushort

The ushort keyword denotes an integral data type that stores values according to the size and range shown in the following table.

Type Range Size NGWS Type
ushort 0 to 65,535 Unsigned 16-bit integer System.UInt16

Literals

You can declare and initialize a ushort variable like this example:

ushort myShort = 65535;

In the preceding declaration, the integer literal 65535 is implicitly converted from int to ushort. If the integer literal exceeds the range of ushort, a compilation error will occur.

A cast must be used when calling overloaded methods. Consider, for example, the following overloaded methods that use ushort and int parameters:

public static void MyMethod(int i) {}
public static void MyMethod(ushort s) {}

Using the ushort cast guarantees that the correct type is called, for example:

MyMethod(5);          // Calling the method with the int parameter
MyMethod((ushort)5);  // Calling the method with the ushort parameter

Conversions

There is a predefined implicit conversion from ushort to int, uint, long, ulong, float, double, or decimal.

There is a predefined implicit conversion from byte or char to ushort. Otherwise a cast must be used to perform an explicit conversion. Consider for example, the following two ushort variables x and y:

ushort x = 5, y = 12;

The following assignment statement will produce a compilation error, because the arithmetic expression on the right-hand side of the assignment operator evaluates to int by default.

ushort z = x + y;   // Error: conversion from int to ushort

To fix this problem, use a cast:

ushort z = (ushort)(x + y);   // OK: explicit conversion

It is possible though to use the following statements, where the destination variable has the same storage size or a larger storage size:

int m = x + y;
long n = x + y;

Notice also that there is no implicit conversion from floating-point types to ushort. For example, the following statement generates a compiler error unless an explicit cast is used:

ushort x = 3.0;          // Error: no implicit conversion from double
ushort y = (ushort)3.0;  // OK: explicit conversion

For information on arithmetic expressions with mixed floating-point types and integral types, see float and double.

For more information on implicit numeric conversion rules, see the Implicit Numeric Conversions Table.

See Also

C# Keywords | Integral Types Table | Built-in Types Table | Implicit Numeric Conversions Table | Explicit Numeric Conversions Table