You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#转VB.NET:字符ASCII数值比较代码转换出错求助

解决VB.NET中字符ASCII值比较的问题

嘿,我知道你现在卡在C#转VB.NET的字符ASCII值比较上了——问题出在你用错方法啦!你之前用的Char.GetNumericValue()并不是用来获取字符ASCII编码的,它的作用是提取字符代表的数字数值(比如字符'5'会返回5.0,而不是它的ASCII码53),这就导致你的条件判断完全不符合预期。

正确的两种实现方式

你需要获取字符对应的ASCII整数,在VB.NET里有两种简单的方法可以实现和C#一致的逻辑:

  • 方法一:使用Asc()函数(VB传统方法)
    这是VB里专门用来获取字符ASCII码的函数,用法直接明了:

    If (Asc(a) >= 33) AndAlso (Asc(a) <= 48) Then
        word += "|"
        word1 += "|"
    End If
    
  • 方法二:使用Convert.ToInt32()转换
    这种方式和C#里直接将char类型转为int的逻辑完全一致,兼容性更好:

    If (Convert.ToInt32(a) >= 33) AndAlso (Convert.ToInt32(a) <= 48) Then
        word += "|"
        word1 += "|"
    End If
    

举个例子验证

比如当a是字符'0'时:

  • Char.GetNumericValue(a)返回0.0,不符合你要的48
  • Asc(a)和Convert.ToInt32(a)都会返回48,和C#里的行为完全匹配,这样你的条件判断就能正常工作了。

内容的提问来源于stack exchange,提问作者MDP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:05:54