我用C#编写了这段代码,它有效且有效。
public const char NBSP = '\u00A0';
由于某些原因,我需要在VB.net中编写此方法。我尝试了这些:
1。
Public Const NBSP As Char = "\u00A0"
错误:Option Strict On不允许从'String'到'Char'的隐式转换
2。
Public Const NBSP As Char = "\u00A0"c
错误:字符常量必须只包含一个字符。
3。
Public Const NBSP As Char = &HA0 'Or 0x00A0
错误:整数值不能转换为Char。
注意:我不能使用ChrW函数。Convert.ToChar()都不是,因为它是Const。一种解决方案可能是删除Const键,但对我来说很难看。
我认为我应该使用String而不是Char数据类型。但是不确定是否会引起任何问题?
Public Const NBSP As String = "\u00A0"
有什么建议吗?
答案 0 :(得分:1)
不同的方法。
使用整数存储值,然后使用ChrW()将其转换为char
:
Dim nbs1 As Integer = &HA0
Console.WriteLine("NBS" & New String({ChrW(nbs1)}))
使用字节数组并调用Encoding.Unicode.GetString()将字节数组转换为字符串。请注意,字节顺序是相反的:
Dim nbs2 As Byte() = {&HA0, &H0}
Console.WriteLine("NBS" & Encoding.Unicode.GetString(nbs2))
使用Regex.Unescape()将转义的Unicode字符“ \ uXXXX”转换为字符串:
Dim nbs3 As String = "\u00A0"
Dim nbs4 = "NBS" & Regex.Unescape(nbs3)
Console.WriteLine(nbs4)