由于一些特殊的原因,我的Expression里面需要支持中文变量名,但是C# Expression Evaluator会提示错误,在他的HelperMethods.IsAlpha()里面加上这么一段就行了

public static bool IsAlpha(char chr)
{
    return (chr >= 'A' & chr <= 'Z') || (chr >= 'a' & chr <= 'z') || (chr >= 0x4E00 && chr <= 0x9FA5);
}
chr >= 0x4E00 && chr <= 0x9FA5 这个是我自己加上去的,重新生成DLL后应用到项目里面就可以支持中文变量名了。

又发现一个BUG,变量名不支持下划线"_",在Parse.cs中大约在314行,改这里
while (IsInBounds() && (HelperMethods.IsAlpha(_pstr[_ptr]) || HelperMethods.IsNumeric(_pstr, _ptr) || (_pstr[_ptr] == '_')))
{
    _ptr++;
}

注意最后的(_pstr[_ptr] == '_')是我自己加上去了,这样就支持带下划线的变量名了。

 

相关文章:

  • 2021-05-30
  • 2022-12-23
  • 2022-01-22
  • 2021-11-09
  • 2021-11-22
  • 2023-03-19
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-20
  • 2022-12-23
  • 2022-12-23
  • 2021-12-08
  • 2021-11-17
相关资源
相似解决方案