Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止System.Version删除前导零?_C# - Fatal编程技术网

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");