【问题标题】:How do you declare a Char literal in Visual Basic .NET?如何在 Visual Basic .NET 中声明 Char 文字?
【发布时间】:2011-03-23 10:28:22
【问题描述】:

Option Strict On:

Dim theLetterA As Char = "A"

返回关于将字符串 "A" 转换为 Char 的错误。

输入Char 文字的语法是什么?

【问题讨论】:

    标签: vb.net literals


    【解决方案1】:

    在尝试将双引号作为字符文字的情况下,您需要使用额外古怪的 VB 格式:

    Dim theQuote As Char = """"C
    

    或者

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

    【讨论】:

    • 我想取决于您对可读性的定义。我自己通常会避免使用“幻数”,虽然 VB 表达式是古怪的 AF,但您永远不必拉出 ASCII 表来检查它是否正确。
    • 我明白了。在谈论 CHAR 时,我不认为 ASCII 码是“神奇的”,因为那是 CHAR 所持有的实际数字。字符是一个数字。如果您要检查theQuote 的内存,您会看到34
    【解决方案2】:

    我会使用 CChar。例如:

     Dim theLetterA As Char = CChar("A")
    

    查看 MSDN 网站https://msdn.microsoft.com/en-us/library/s2dy91zy.aspx 了解有关 CChar 的详细信息。

    【讨论】:

    • 值得更多点赞。 char ctor 比我以前从未见过的字符串装饰器更有意义。
    • @RJB:您可能更喜欢这种语法,但事实是这 不是 字符文字。这是一个执行从字符串到字符的运行时转换的语句。完全不一样。
    • 我同意。这是旧的 VB 代码,需要 visualbasic 参考。正确的方法是使用转换类。 Convert.ToChar("A")
    • @sstan 我没有任何官方声明,但编译器很可能会在编译时威胁将序列作为字符文字(“A”c)。
    • @Kevbo - 这仍然是运行时操作,而不是字符文字。可能效率低下。更重要的是,更冗长。 Convert.ToChar("A") 相对于 "A"c 的可读性如何提高?
    【解决方案3】:

    使用以C 为后缀的单个字符串输入字符文字。

    Dim theLetterA As Char = "A"C
    

    【讨论】:

    • 这真的很糟糕,打破了所有惯例!感谢您的帮助
    • 实际上表示类型的文字后缀与 C 和 Basic 一样古老,尽管不适用于与字符串相关的类型,而且我第一次看到它时也觉得有点可疑。
    • 我需要使用 """"C 来修剪字符串中的引号。多么丑陋。
    • 这让我有点死心了。
    • 小写的 'c' 也可以。丑的少一点。这与将 Python 字符串声明为 unicode 文字没有太大区别,是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多