首页 / C# / 将VB转换为C#-类型转换
将VB转换为C#-类型转换
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将VB转换为C#-类型转换,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1491字,纯文字阅读大概需要3分钟。
内容图文
![将VB转换为C#-类型转换](/upload/InfoBanner/zyjiaocheng/653/e46bb52f3fba41d6b0882185c6503064.jpg)
我需要帮助将某些代码从VB转换为C#.
Public Function ToBase36(ByVal IBase36 As Double) As String
Dim Base36() As String = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
Dim v As String
Dim i As Decimal
Do Until IBase36 < 1
i = IBase36 Mod 36
v = Base36(i) & v
IBase36 = Math.DivRem(Long.Parse(IBase36), 36, Nothing)
Loop
Return v
End Function
我的问题是VB中类型转换的工作方式,这行给我带来了最大的麻烦,因为IBase36是双精度型,在这种情况下Math.DivRem()应该返回long,而Long.Parse()需要字符串.
IBase36 = Math.DivRem(Long.Parse(IBase36), 36, Nothing)
这是我翻译的工作代码,这要感谢JaredPar和其他人
public static string ToBase36(double IBase36)
{
string[] Base36 = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
string v = null;
long i = default(long);
while (!(IBase36 < 1))
{
IBase36 = Convert.ToDouble(Math.DivRem(Convert.ToInt64(IBase36), 36, out i));
v = Base36[i] + v;
}
return v;
}
解决方法:
要进行翻译,重要的是首先了解VB.Net代码的功能.在引擎盖下,它将基本上产生以下内容
Dim unused As Long
IBase36 = CDbl(Math.DivRem(Long.Parse(CStr(IBase36)), 36, unused)
注意:未使用的变量是必需的,因为第三个参数是out.转换为C#时,这是一个重要的区别.
上面最自然的C#等效项是
long unused;
IBase36 = Convert.ToDouble(Math.DivRem(Long.Parse(IBase36.ToString()), 36, out unused);
内容总结
以上是互联网集市为您收集整理的将VB转换为C#-类型转换全部内容,希望文章能够帮你解决将VB转换为C#-类型转换所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。