Làm thế nào để bạn khai báo một ký tự Char trong Visual Basic .NET?


89

Với Option Strict On:

Dim theLetterA As Char = "A"

trả về lỗi khi chuyển đổi chuỗi "A"thành a Char.

Cú pháp để nhập một Charký tự là gì?

Câu trả lời:


158

Một ký tự ký tự được nhập bằng cách sử dụng một chuỗi ký tự đơn có hậu tố là a C.

Dim theLetterA As Char = "A"C

19
Điều đó thực sự tệ hại, phá vỡ mọi quy ước! Cảm ơn sự giúp đỡ của bạn
Alvaro

3
Trên thực tế, hậu tố theo nghĩa đen để biểu thị loại cũng cũ như C và Basic mặc dù không dành cho các loại liên quan đến chuỗi, và tôi cũng cảm thấy nó hơi khó hiểu lần đầu tiên tôi nhìn thấy nó.
Swanny

9
Tôi cần sử dụng "" "" C để cắt dấu ngoặc kép từ một chuỗi. Thật xấu xa.
Matt

11
Điều này làm tôi chết một chút trong lòng.
Thanh tra Squirrel

4
Chữ thường 'c' cũng hoạt động. Ít xấu xí hơn một chút. Điều này không khác nhiều so với việc khai báo các chuỗi Python ví dụ dưới dạng các ký tự unicode, phải không?
deed02392

4

Tôi sẽ sử dụng CChar. Ví dụ:

 Dim theLetterA As Char = CChar("A")

Kiểm tra trang web MSDN https://msdn.microsoft.com/en-us/library/s2dy91zy.aspx để biết chi tiết về CChar.


Xứng đáng với nhiều lượt ủng hộ hơn. Một char ctor có ý nghĩa hơn một trình trang trí chuỗi như tôi chưa từng thấy trước đây.
RJB

18
@RJB: Bạn có thể thích cú pháp hơn, nhưng thực tế là đây không phải là một ký tự theo nghĩa đen. Đó là một câu lệnh thực hiện chuyển đổi thời gian chạy từ một chuỗi thành một ký tự. Không giống nhau chút nào.
sstan

2
Tôi đồng ý. đây là mã VB cũ và yêu cầu tham chiếu cơ bản. Cách đúng là sử dụng lớp convert. Convert.ToChar ("A")
Kevbo

@sstan Tôi không có bất kỳ tuyên bố chính thức nào, nhưng rất có thể xảy ra các mối đe dọa trình biên dịch trình tự dưới dạng ký tự chữ ("A" c) trong thời gian biên dịch.
II ARROWS

@Kevbo - đó vẫn là một hành động thời gian chạy, thay vì một ký tự theo nghĩa đen. Có lẽ là không hiệu quả. Quan trọng hơn, dài dòng hơn nhiều. Làm thế nào là Convert.ToChar("A")một sự cải thiện khả năng đọc trên "A"c?
ToolmakerSteve

2

Trong trường hợp cố gắng lấy dấu ngoặc kép dưới dạng một ký tự, bạn sẽ cần sử dụng thêm định dạng VB kỳ quặc:

Dim theQuote As Char = """"C

Hoặc là

Dim theQuote As Char = CChar("""")

1
Tôi cho rằng phụ thuộc vào định nghĩa của bạn về có thể đọc được. Bản thân tôi thường tránh "những con số kỳ diệu" và mặc dù biểu thức VB là AF kỳ quặc, bạn sẽ không bao giờ phải kéo bảng ASCII lên để kiểm tra xem nó có đúng hay không.
andyb

Tôi hiểu rồi. Tôi không nghĩ mã ASCII là "ma thuật" khi nói về một CHAR vì đó là số thực tế do CHAR nắm giữ. Một ký tự là một số. Nếu bạn kiểm tra bộ nhớ cho theQuotebạn sẽ thấy 34.
HackSlash
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.