It is guaranteed to be non-negative.
char is a 16-bit unsigned value.
From section 4.1.5 of the C # 4 specification:
The type charis unsigned 16-bit integers with values from 0 to 65535. The set of possible values for the type charcorresponds to the Unicode character set. Although it charhas the same idea as ushort, not all operations allowed for one type are allowed on another.
source
share