gpt4 book ai didi

vb.net - .NET 2.0 中带前导零的数字格式

转载 作者:行者123 更新时间:2023-12-02 04:22:48 25 4
gpt4 key购买 nike

当应用程序使用 NET Framework 2.0 和 Visual Basic 时,我在格式化数字并将其转换为带有前导零的字符串时遇到问题。

我尝试:

Dim myNum = 12
Dim myStr as String

Dim myStr = myNum.ToString("0000")
or
Dim myStr = myNum.ToString("D4")

...为了得到想要的字符串:0012

请帮忙解决这个问题。

最佳答案

您拥有旧版本的 Visual Studio,尚无Option Infer。或者没有开启。这使得 myNum 标识符成为 Object 类型的变量。

因此您的代码尝试调用 Object.ToString() 方法。它没有带参数的重载。编译器现在尝试利用您的代码,并且只能通过将 (“0000”) 或 (“D4”) 视为数组索引表达式来实现这一点。对 Object.ToString() 返回的字符串进行索引。温和地说,这有非常有趣的副作用。像“0000”这样的字符串不是有效的索引表达式,编译器会生成代码自动将其转换为整数。这适用于“0000”,转换为 0,结果是一个字符,只是“1”c。当然,将“D4”转换为整数效果不太好,这是一个响亮的爆炸声!

解决方案非常简单,只需显式命名变量的类型即可:

  Dim myNum As Integer = 12
Dim myStr = myNum.ToString("D4") '' Fine

VB.NET 对动态类型的支持非常有名。它旨在帮助新程序员入门,事实上它是一种先进的技术,因为它可以以非常意想不到的方式表现出来。

普遍的建议总是相同的。让编译器帮你发现这样的错误。将其放在源代码文件的顶部:

 Option Strict On

关于vb.net - .NET 2.0 中带前导零的数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26687805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com