2017-10-14 99 views
0

所以,我正在玩一些模塊的可能性,我正在構建一個應用程序,我想對它們進行版本化。是否可以使用格式爲1.0.0的結構?

這些模塊是dll實現一個接口與該模塊版本的屬性。格式應該是「Major.Minor.Build」。

如果我創建一個類型爲String的屬性,則存在像「Major.Minor」或「Major.Minor.Build.Revision」這樣的版本的可能性。我想阻止這一點。

所以我有一個類似Double的結構,但有第三個數字的想法。我的問題是現在,這是否可能,如果是的話,我該如何實現這樣的事情?

在課堂上就應該是這樣的:

public class MyModuleContext : IModuleContext 
{ 
    public ModuleVersion Version { get; set; } = 1.0.0; 
    // more interface things ... 
} 

感謝您的幫助:)

+0

看看System.Version類,並使用3構建組件 – ASh

回答

1

只需創建一個class滿足您的需求:

public class Version: IVersion 
{ 
    public int Major { get; } 
    public int Minor { get; } 
    public int Build { get; } 

    public override string ToString => 
     $」{Major}.{Minor}.{Build}」 

    public Version(int major, int minor, int build) 
    { 
     //omitted argument validation 
     Major = major; 
     Minor = minor; 
     Build = build; 
    } 
} 

如果你主要是將要通過IVersion引用,你最好將它作爲引用類型來實現,否則你將在整個地方裝入值類型。

如果你想實現值相等的語義,比較邏輯等,這取決於你。這是非常平凡的。

相關問題