2008-11-14 64 views
74

Cách tốt nhất để chuyển đổi giá trị Int thành Char tương ứng trong Utf16, cho rằng Int nằm trong phạm vi giá trị hợp lệ là gì?Int to Char in C#

Trả lời

104
(char)myint; 

ví dụ:

Console.WriteLine("(char)122 is {0}", (char)122); 

sản lượng:

(char) 122 là z

+0

Đây là câu trả lời không tốt. c = (char) 49 là 1 không phải '1' – nykwil

+6

@nykwil Tôi không thấy có gì sai với câu trả lời của gimel. –

+3

@nykwil - Đó là thông tin sai lạc. 'Console.WriteLine ((char) 49 == '1');' Sẽ cho ** Đúng **. Như sẽ 'char c = (char) 49; \t chuỗi s = "1two3"; \t Console.WriteLine (c == s [0]); 'Sử dụng dàn diễn viên này hoàn toàn ổn. Lời giải thích của bạn không cung cấp một ví dụ hợp lệ về nó không hoạt động. Hơn nữa, 'Console.WriteLine ((char) 49 == 1);' là * false * mà chủ yếu làm cho chú thích của bạn không có cơ sở. –

50
int i = 65; 
char c = Convert.ToChar(i); 
+36

Chuyển đổi.ToChar cuối cùng thực hiện chuyển đổi rõ ràng dưới dạng giá trị "(char)", trong đó "giá trị" là giá trị int của bạn. Trước khi làm như vậy, nó kiểm tra để đảm bảo "giá trị" nằm trong khoảng 0 đến 0xffff, và ném một OverflowException nếu nó không phải là. Cuộc gọi phương thức bổ sung, kiểm tra giá trị/ranh giới và OverflowException có thể hữu ích, nhưng nếu không, hiệu năng sẽ tốt hơn nếu bạn chỉ sử dụng giá trị "(char)". – Triynko

12

Mặc dù không chính xác trả lời các câu hỏi như xây dựng, nhưng nếu bạn cần hoặc có thể kết quả cuối cùng như chuỗi bạn cũng có thể sử dụng

string s = Char.ConvertFromUtf32(56) 

mà sẽ cung cấp cho bạn thay thế cặp UTF16 nếu cần thiết, để bảo vệ bạn nếu bạn ra bên của BMP.