版本的字符串插值
String Interpolation Of Version
我一直在将一些代码转换为使用字符串插值而不是连接,但遇到了 Version
属性.
异常
这按预期工作:
Dim CurrTime As String = $"Current time is {Now:HH:mm:ss}" (eg Current time is 23:22:21)
但事实并非如此:
Dim Ver As String = $"Version is {myAssembly.GetName().Version:3}"
如果 Version
是 1.2.3.4,Ver 仍然解析为“版本是 1.2.3.4”,而不是我期望的“版本是 1.2.3”。
我是不是误解了它的工作原理?显然,这没什么大不了的,我只是一头雾水。
复合格式中使用的 :formatString
部分(例如,使用字符串插值或 String.Format()
)不 做 ToString()
做的所有事情.前者只支持某些类型。如果您查看 Structure of an interpolated string 的文档,您会看到 formatString
元素的描述是:
A format string that is supported by the type of the expression result. For more information, see Format String Component.
如果您遵循 link,它会将您带到复合格式的文档,您可以在其中阅读有关支持的类型的更多信息:
The optional formatString component is a format string that is appropriate for the type of object being formatted. Specify a standard or custom numeric format string if the corresponding object is a numeric value, a standard or custom date and time format string if the corresponding object is a DateTime object, or an enumeration format string if the corresponding object is an enumeration value. If formatString is not specified, the general ("G") format specifier for a numeric, date and time, or enumeration type is used. The colon is required if formatString is specified.
作为解决方法,您可以将 String.Format()
与字符串插值结合使用:
Dim Ver As String = $"Version is {myAssembly.GetName().Version.ToString(3)}"
或者只是恢复到这个特定案例的串联。
我一直在将一些代码转换为使用字符串插值而不是连接,但遇到了 Version
属性.
这按预期工作:
Dim CurrTime As String = $"Current time is {Now:HH:mm:ss}" (eg Current time is 23:22:21)
但事实并非如此:
Dim Ver As String = $"Version is {myAssembly.GetName().Version:3}"
如果 Version
是 1.2.3.4,Ver 仍然解析为“版本是 1.2.3.4”,而不是我期望的“版本是 1.2.3”。
我是不是误解了它的工作原理?显然,这没什么大不了的,我只是一头雾水。
复合格式中使用的 :formatString
部分(例如,使用字符串插值或 String.Format()
)不 做 ToString()
做的所有事情.前者只支持某些类型。如果您查看 Structure of an interpolated string 的文档,您会看到 formatString
元素的描述是:
A format string that is supported by the type of the expression result. For more information, see Format String Component.
如果您遵循 link,它会将您带到复合格式的文档,您可以在其中阅读有关支持的类型的更多信息:
The optional formatString component is a format string that is appropriate for the type of object being formatted. Specify a standard or custom numeric format string if the corresponding object is a numeric value, a standard or custom date and time format string if the corresponding object is a DateTime object, or an enumeration format string if the corresponding object is an enumeration value. If formatString is not specified, the general ("G") format specifier for a numeric, date and time, or enumeration type is used. The colon is required if formatString is specified.
作为解决方法,您可以将 String.Format()
与字符串插值结合使用:
Dim Ver As String = $"Version is {myAssembly.GetName().Version.ToString(3)}"
或者只是恢复到这个特定案例的串联。