C# 如何防止System.Version删除前导零?
我正在获取值C# 如何防止System.Version删除前导零?,c#,C#,我正在获取值versionNo=2.1,但我希望它是2.01 有什么建议吗?系统的每个组件。版本是一个int,所以它不会填充0。您可以有一个主要、次要和构建: var versionNo = new System.Version("2.01"); 导致 Version versionNo = new Version("2.0.1"); 但一般来说,01和1是等效的。如果您想特别填充版本0的任何组件,我建议您重写版本的ToString方法或创建扩展方法(如D Stanley所述),或使用其他类
versionNo
=2.1
,但我希望它是2.01
有什么建议吗?系统的每个组件。版本是一个int,所以它不会填充0。您可以有一个主要、次要和构建:
var versionNo = new System.Version("2.01");
导致
Version versionNo = new Version("2.0.1");
但一般来说,01和1是等效的。如果您想特别填充版本0的任何组件,我建议您重写版本的ToString方法或创建扩展方法(如D Stanley所述),或使用其他类型。这就是工作原理-它将版本的组件存储为单独的整数,所以2.01
和2.1
之间没有区别。如果需要以这种方式显示,可以将其格式化为:
Version = 2.0.1
为方便起见,您还可以创建一个扩展方法:
Version versionNo = new Version("2.01");
string s = string.Format("{0}.{1:00}",versionNo.Major, versionNo.Minor);
这样,您仍然可以自定义显示,同时保留
版本
类的可比性。如果您的版本是2.01
,则表示您的MinorVersion
是01
要输出该值,您必须通过执行以下操作将其输入到MinorVersion
:
public static string MyFormat(this Version ver)
{
return string.Format("{0}.{1:00}",ver.Major, ver.Minor);
}
01和1之间的区别是什么?“我得到了值…”:请你更精确一点好吗?请显示将
versionNo
转换为字符串“2.1”
的代码。您:我建议您重写version的ToString方法,[…]注意,系统。version
是一个密封的类。因此,从技术上讲,您不能覆盖
,因为您不能从类派生。当然,您可以编写一个包装System.Version
的类。
string version = version.Major.ToString() + version.Minor.ToString("D2");