var versionNo = new System.Version("2.01");
我得到的值是versionNo
= 2.1
,但我想要它作爲2.01
。如何防止System.Version刪除前導零?
有什麼建議嗎?
var versionNo = new System.Version("2.01");
我得到的值是versionNo
= 2.1
,但我想要它作爲2.01
。如何防止System.Version刪除前導零?
有什麼建議嗎?
這就是system.Version
的工作原理 - 它將版本的組件作爲單獨的整數存儲,因此2.01
和2.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
類的可比性。
System.Version的每個組件是一個int,所以也沒有墊0。你可以有一個主要,次要,並建立:
Version versionNo = new Version("2.0.1");
導致
Version = 2.0.1
但通常,01和1是等效的。如果你想專門擁有版本0填充的任何組件,我建議你覆蓋版本的ToString方法或者創建一個擴展方法(如D Stanley所述),或者使用不同的類型。
你:_I建議你重寫版本的ToString方法,但是請注意,'System.Version'是一個'sealed'類。所以你不能在技術上'覆蓋',因爲你不能從類派生。當然,你可以編寫一個包裝'System.Version'的類。 –
@JeppeStigNielsen啊,你是對的。謝謝。 – xdumaine
如果您的版本是2.01
,那意味着您的MinorVersion
是01
。
這一點,你不得不pad的MinorVersion
,做輸出:
string version = version.Major.ToString() + version.Minor.ToString("D2");
是什麼01和1之間的區別? – Steve
_「我得到的價值......」:你能更精確一點嗎?請顯示將'versionNo'轉換爲字符串'「2.1」'的代碼。 – stakx