编辑/更新:
谢谢大家的回复.我知道我太模糊了,但不确定在这种情况下发布裸线代码是否有用.
谢谢大家的回复.我知道我太模糊了,但不确定在这种情况下发布裸线代码是否有用.
Tempunit.DataSource = {"°C","°F","°R","K"}
…存储在变量中:
Dim unit As String = Tempunit.SelectedItem.ToString
…与其他变量一起传递给函数:
Function xxx(...,ByVal unitT As String) As Double
let tempConv t u = match u with |"°C" -> t * 9.0 / 5.0 + 32.0 |"°R" -> t - 459.67 |"K" -> t * 9.0 / 5.0 - 459.67 |_ -> t
如果选择了开尔文以外的任何温度单位,则匹配失败并默认为其他情况(在此上下文中为华氏温度).我最终通过评估子字符串来绕过度数符号:
Dim unit As String = Tempunit.SelectedItem.ToString.Substring(1)
该程序再次运行,但我不知道我改变了什么,如果有的话,使字符串匹配停止工作.我尝试的第一件事是从一个文件复制/粘贴到另一个文件,以确保它们是相同的字符串,除了尝试其他符号,但无济于事.学位符号引起了我的注意,但随后我检查了压力单位并发现了与微前缀完全相同的问题.
谢谢你,Hans Passant,我想到了unicode作为一种可能的解决方案,但在当下的热度下它似乎并不是一个简单的解决方案.感谢您的链接.
原帖:
我有一个VB程序引用存储在F#库文件中的函数,其参数包括包含特殊字符的度量单位字符串(例如“°C”“μBar”).
.vb和.fs文件中的字符串相同;直到F#库文件由于我不知道的原因而停止识别Alt-Code字符时才会出现问题.
如果我从F#和VB文件中的字符串定义中删除有问题的Alt-Code字符,程序将按预期工作.
什么会导致匹配在两个碰巧包含Alt-Code字符的相同字符串之间失败?
在F#(和VB)中处理Alt-Code字符的正确方法是什么?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。