更新:2007 年 11 月
ushort 关键字表示整数数据类型,该类型根据下表显示的大小和范围存储值。
类型 | 范围 | 大小 | .NET Framework 类型 |
---|---|---|---|
ushort | 0 到 65,535 | 无符号 16 位整数 |
标识符
可如下例所示声明并初始化 ushort 类型的变量:
复制代码 | |
---|---|
ushort myShort = 65535; |
在以上声明中,整数 65535 从
调用重载方法时,必须使用强制转换。以下面使用 ushort 和
复制代码 | |
---|---|
public static void SampleMethod(int i) {} public static void SampleMethod(ushort s) {} |
使用 ushort 强制转换可保证调用正确的类型,例如:
复制代码 | |
---|---|
// Calls the method with the int parameter: SampleMethod(5); // Calls the method with the ushort parameter: SampleMethod((ushort)5); |
转换
存在从 ushort 到
存在从
复制代码 | |
---|---|
ushort x = 5, y = 12; |
以下赋值语句将产生一个编译错误,原因是赋值运算符右侧的算术表达式在默认情况下的计算结果为 int。
复制代码 | |
---|---|
ushort z = x + y; // Error: conversion from int to ushort |
若要解决此问题,请使用强制转换:
复制代码 | |
---|---|
ushort z = (ushort)(x + y); // OK: explicit conversion |
但是,在目标变量具有相同或更大的存储大小时,使用下列语句是可能的:
复制代码 | |
---|---|
int m = x + y; long n = x + y; |
还请注意,不存在从浮点型到 ushort 类型的隐式转换。例如,除非使用显式强制转换,否则以下语句将生成一个编译器错误:
复制代码 | |
---|---|
// Error -- no implicit conversion from double: ushort x = 3.0; // OK -- explicit conversion: ushort y = (ushort)3.0; |
有关兼用浮点型和整型的算术表达式的信息,请参见
有关隐式数值转换规则的更多信息,请参见隐式数值转换表(C# 参考)。
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各章节:
1.3 类型和变量
4.1.5 整型