VB.NET如何使用不可破坏的空格字符初始化常量

问题描述 投票:2回答:1

我有这个用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"

有什么建议?

vb.net const
1个回答
1
投票

方法不同。

使用Integer存储值,然后使用char将其转换为ChrW()

Dim nbs1 As Integer = &HA0
Console.WriteLine("NBS" & New String({ChrW(nbs1)}))

使用Byte数组并调用qazxsw poi将字节数组转换为字符串。请注意,字节顺序是反转的:

Encoding.Unicode.GetString()

使用Dim nbs2 As Byte() = {&HA0, &H0} Console.WriteLine("NBS" & Encoding.Unicode.GetString(nbs2)) 将unicode转义字符“\ uXXXX”转换为字符串:

Regex.Unescape()
© www.soinside.com 2019 - 2024. All rights reserved.