vb.net – 为什么Chr(3)是一个常量表达而不是Chr(172)?

如果我写下面的代码,ReSharper会建议我将第一个变量chr3转换为常量,而不是第二个变量chr127.

Public Class ClassX
    Public Sub SomeMethod()
        Dim chr3 As String = Chr(3)
        Dim chr172 As String = Chr(172)

        Debug.WriteLine(chr3)
        Debug.WriteLine(chr172)
    End Sub
End Class

如果我将两者都转换为常量,我会在Chr(172)上得到一个Visual Studio编译器警告,指出“需要常量表达式”,但没有Chr(3)的编译器警告.

Public Class ClassX
    Public Sub SomeMethod()
        Const chr3 As String = Chr(3)
        Const chr172 As String = Chr(172)

        Debug.WriteLine(chr3)
        Debug.WriteLine(chr172)
    End Sub
End Class

是什么让Chr(3)成为常数而不是Chr(172)?

最佳答案 字符3是“文本结束”字符,所以它可能表现出奇怪的行为似乎并不令人惊讶.这个和其他类似的字符很少直接使用.

点赞