QFD*_*Dev 1 c# vb.net asp.net hex char
我试图将一个代码块从C#转换为VB.NET.原始代码示例可以位于此处(请参阅接受的答案):
在构造使用数据的XmlReader或XPathDocument之前,如何从基于XML的数据源中删除无效的十六进制字符?
我使用在线工具进行了原始转换,尽管我在查询chchar对象的十六进制字符范围内有一个例外.
If (ch < &HFD AndAlso ch > &H1F)
提出的例外是operator < is not defined for types 'char' and 'integer'.VB解释我哪里错了?
Function RemoveTroublesomeCharacters(inString As String) As String
If inString Is Nothing Then
Return Nothing
End If
Dim newString As New StringBuilder()
Dim ch As Char
For i As Integer = 0 To inString.Length - 1
ch = inString(i)
' remove any characters outside the valid UTF-8 range as well as all control characters
' except tabs and new lines
If (ch < &HFD AndAlso ch > &H1F) OrElse ch = ControlChars.Tab OrElse ch = ControlChars.Lf OrElse ch = ControlChars.Cr Then
newString.Append(ch)
End If
Next
Return newString.ToString()
End Function
Run Code Online (Sandbox Code Playgroud)
在C#中,char可以转换为int16,因此不等式测试是有意义的.
在VB.Net中,不允许隐式转换,因此您必须自己动手.
实现这一目标的最简单方法通常是Asc()方法(将char转换为int)或Chr()方法(转向其他方式).
例如:
If (Asc(ch) < &HFD AndAlso Asc(ch) > &H1F) OrElse...
Run Code Online (Sandbox Code Playgroud)
我最近曾经多次发现这个问题与developerfusion转换有关,所以我在这里提出了一个建议的更改.如果你想修复它,请给它一个投票!
| 归档时间: |
|
| 查看次数: |
1896 次 |
| 最近记录: |