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

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

请问有什么建议吗?

4

3 回答 3

13

这就是工作原理 - 它将版本的组件存储为单独的整数,因此和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类的可比性。

于 2013-03-29T16:19:44.147 回答
7

System.Version 的每个组件都是一个 int,因此它不会填充 0。您可以有一个主要、次要和构建:

Version versionNo = new Version("2.0.1");

这导致

Version = 2.0.1

但通常,01 和 1 是等价的。如果您想专门填充版本 0 的任何组件,我建议您覆盖版本的 ToString 方法或创建扩展方法(如 D Stanley 所述),或使用不同的类型。

于 2013-03-29T16:18:50.633 回答
1

如果您的版本是2.01,那意味着您MinorVersion01

要输出它,您必须通过执行以下操作来填充, MinorVersion

string version = version.Major.ToString() + version.Minor.ToString("D2");
于 2013-03-29T16:19:55.207 回答