Phương thức Convert.ToUInt16() chuyển đổi một giá trị xác định sang số nguyên 16-bit không dấu (ushort, phạm vi 0 đến 65,535).
Ví dụ chuyển từ string
string str = "1129";
ushort res = Convert.ToUInt16(str); // 1129
Mã nguồn hoàn chỉnh
using System;
public class Demo
{
public static void Main()
{
string str = "1307";
ushort res = Convert.ToUInt16(str);
Console.WriteLine("Converted string '{0}' to {1}", str, res);
}
}
Kết quả
Converted string '1307' to 1307
Các overload phổ biến
| Kiểu đầu vào | Ví dụ | Lưu ý |
|---|---|---|
| string | "1234" | Phân tích chuỗi số |
| byte/sbyte | 200 | An toàn nếu trong phạm vi |
| short/ushort | (ushort)50000 | Chuyển đổi trực tiếp |
| int/uint/long/ulong | 50000 | Ném OverflowException nếu > 65535 |
| float/double/decimal | 123.45 | Làm tròn (banker's rounding) |
| bool | true | true→1, false→0 |
| object | boxed value | Unbox rồi chuyển |
Ngoại lệ
OverflowException: Giá trị ngoài phạm vi [0, 65535]FormatException: String không đúng định dạng sốArgumentNullException: String là null (cho một số overload)
So sánh với ushort.Parse / TryParse
// Parse - ném exception nếu lỗi
ushort a = ushort.Parse("123");
// TryParse - an toàn, không exception
ushort b;
bool success = ushort.TryParse("123", out b); // true, b=123
// Convert.ToUInt16 - chấp nhận nhiều kiểu hơn, null→0
ushort c = Convert.ToUInt16(null); // 0 (không ném exception)