如何防止System.Version删除前导零?

时间:2013-03-29 16:13:23

标签: c#

var versionNo = new System.Version("2.01");

我得到了值versionNo = 2.1,但我希望它为2.01

有什么建议吗?

3 个答案:

答案 0 :(得分:10)

这就是system.Version的工作方式 - 它将版本的组件存储为单独的整数,因此2.012.1之间没有区别。如果您需要以这种方式显示它,您可以将其格式化为:

Version versionNo = new Version("2.01");
string s = string.Format("{0}.{1:00}",versionNo.Major, versionNo.Minor);

为方便起见,您还可以创建一个扩展方法:

public static string MyFormat(this Version ver)
{
    return string.Format("{0}.{1:00}",ver.Major, ver.Minor);
}

这样,您仍然可以自定义显示,同时保留Version类的可比性。

答案 1 :(得分:7)

System.Version的每个组件都是一个int,所以它不会填充0.你可以有一个major,minor和build:

Version versionNo = new Version("2.0.1");

导致

Version = 2.0.1

但一般来说,01和1是等价的。如果你想特别填充版本0的任何组件,我建议你覆盖版本的ToString方法或创建一个扩展方法(如D Stanley所述),或者使用不同的类型。

答案 2 :(得分:1)

如果您的版本为2.01,则表示您的MinorVersion01

要输出,您需要pad MinorVersion,这样做:

string version = version.Major.ToString() + version.Minor.ToString("D2");