Mục đích
Phương thức Char.TryParse(string s, out char result) cố gắng chuyển chuỗi thành một ký tự Unicode duy nhất. Trả về true nếu thành công, false nếu chuỗi rỗng, dài hơn 1 ký tự hoặc null.
Ví dụ 1: Chuỗi không hợp lệ ("10")
using System;
public class Demo
{
public static void Main()
{
bool res;
char ch;
res = Char.TryParse("10", out ch);
Console.WriteLine($"TryParse('10'): {res}");
Console.WriteLine($"Ký tự: '{ch}'");
}
}
Kết quả
TryParse('10'): False
Ký tự: ''
Ví dụ 2: Chuỗi hợp lệ ("P")
using System;
public class Demo
{
public static void Main()
{
bool res;
char ch;
res = Char.TryParse("P", out ch);
Console.WriteLine($"TryParse('P'): {res}");
Console.WriteLine($"Ký tự: '{ch}'");
}
}
Kết quả
TryParse('P'): True
Ký tự: 'P'
So sánh với các phương thức khác
| Phương thức | Hành vi | Trả về |
|---|---|---|
Char.Parse(string) | Chuyển chuỗi 1 ký tự, ném exception nếu thất bại | char |
Char.TryParse(string, out char) | An toàn, không ném exception | bool |
string[0] hoặc s[0] | Lấy ký tự tại vị trí, không kiểm tra độ dài | char |
Convert.ToChar(string) | Chuyển đổi, ném exception nếu không phải 1 ký tự | char |
Best Practice
- Luôn dùng
TryParsekhi nhập liệu từ người dùng/file. - Kiểm tra
string.Length == 1trước nếu muốn tránh overhead TryParse. - Unicode: Char trong C# là UTF-16 code unit (2 byte), một số ký tự (emoji, chữ Hán ít dùng) cần 2 code unit (surrogate pair) -> dùng
Char.ConvertToUtf32.