คุณจะประกาศ Char literal ใน Visual Basic .NET ได้อย่างไร?


91

ด้วยOption Strict On:

Dim theLetterA As Char = "A"

ส่งกลับข้อผิดพลาดเกี่ยวกับการแปลงสตริง"A"เป็นCharไฟล์.

ไวยากรณ์ที่จะป้อนลิเทอCharรัลคืออะไร?

คำตอบ:


160

อักขระลิเทอรัลถูกป้อนโดยใช้สตริงอักขระเดี่ยวที่ต่อCท้ายด้วย.

Dim theLetterA As Char = "A"C

20
ที่ห่วยแตกทุกคอนจริงๆ! ขอบคุณสำหรับความช่วยเหลือ
Alvaro

3
จริงๆแล้วการต่อท้ายตามตัวอักษรเพื่อระบุประเภทนั้นเก่าพอ ๆ กับ C และ Basic แม้ว่าจะไม่ใช่สำหรับประเภทที่เกี่ยวข้องกับสตริงก็ตามและฉันก็รู้สึกว่ามันน่าสงสัยเล็กน้อยในครั้งแรกที่ฉันเห็น
Swanny

9
ฉันจำเป็นต้องใช้ "" "" C เพื่อตัดคำพูดจากสตริง น่าเกลียดแค่ไหน.
Matt

13
สิ่งนี้ทำให้ฉันตายภายในเล็กน้อย
สารวัตรกระรอก

4
ตัวพิมพ์เล็ก 'c' ก็ใช้ได้เช่นกัน น่าเกลียดน้อยกว่าเล็กน้อย สิ่งนี้ไม่แตกต่างจากการประกาศตัวอย่างเช่นสตริง Python เป็นตัวอักษร Unicode ใช่หรือไม่?
โฉนด02392

5

ฉันจะใช้ CChar เช่น:

 Dim theLetterA As Char = CChar("A")

ตรวจสอบเว็บไซต์ MSDN https://msdn.microsoft.com/en-us/library/s2dy91zy.aspxสำหรับรายละเอียดเกี่ยวกับ CChar


สมควรได้รับคะแนนโหวตมากขึ้น ถ่าน ctor มีความหมายมากกว่ามัณฑนากรสตริงอย่างที่ฉันไม่เคยเห็นมาก่อน
RJB

19
@RJB: คุณอาจชอบไวยากรณ์ที่ดีกว่า แต่ความจริงก็คือว่านี่ไม่ใช่อักขระตามตัวอักษร เป็นคำสั่งที่ดำเนินการแปลงรันไทม์จากสตริงเป็นอักขระ ไม่เหมือนกันเลย.
sstan

2
ฉันเห็นด้วย. นี่เป็นรหัส VB ​​เก่าและต้องใช้การอ้างอิงแบบ Visualbasic วิธีที่ถูกต้องคือการใช้คลาสแปลง
Convert ToChar

@sstan ฉันไม่มีคำชี้แจงอย่างเป็นทางการ แต่มีความเป็นไปได้มากที่คอมไพเลอร์จะคุกคามที่เรียงลำดับเป็นอักขระตามตัวอักษร ("A" c) ในเวลาคอมไพล์
II ARROWS

@Kevbo - นั่นยังคงเป็นการดำเนินการรันไทม์แทนที่จะเป็นตัวอักษร อาจไม่มีประสิทธิภาพ ที่สำคัญกว่านั้นคือ verbose มากขึ้น การConvert.ToChar("A")ปรับปรุงความสามารถในการอ่านเป็น"A"cอย่างไร
ToolmakerSteve

2

ในกรณีที่พยายามขอใบเสนอราคาซ้ำเป็นตัวอักษรคุณจะต้องใช้รูปแบบ VB ที่แปลกใหม่:

Dim theQuote As Char = """"C

หรือ

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

1
ขึ้นอยู่กับคำจำกัดความของการอ่านที่ฉันคิดว่า ฉันมักจะหลีกเลี่ยง "ตัวเลขวิเศษ" ด้วยตัวเองและแม้ว่านิพจน์ VB จะเป็น AF ที่แปลกประหลาด แต่คุณก็ไม่จำเป็นต้องดึงตาราง ASCII ขึ้นมาเพื่อตรวจสอบว่าถูกต้อง
andyb

ฉันเห็น. ฉันไม่คิดว่ารหัส ASCII คือ "เวทมนตร์" เมื่อพูดถึง CHAR เพราะนั่นคือจำนวนจริงที่ถือโดย CHAR ถ่านคือตัวเลข หากคุณกำลังจะตรวจสอบหน่วยความจำสำหรับคุณจะเห็นtheQuote 34
HackSlash
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.