C# 是否可以使用1.0.0格式的结构?

C# 是否可以使用1.0.0格式的结构?,c#,struct,interface,module,version,C#,Struct,Interface,Module,Version,因此,我正在为我正在构建的应用程序研究一些模块的可能性,我想对它们进行版本化 这些DLL模块实现了一个具有此模块版本属性的接口。格式应为“主要。次要。构建” 如果我创建一个字符串类型的属性,则可能存在类似“Major.Minor”或“Major.Minor.Build.Revision”的版本。我想防止这种情况发生 所以我想到了一个类似于Double但有第三个数字的结构。我现在的问题是,这可能吗?如果可能,我如何实现这样的东西 在课堂上,它应该是这样的: 公共类MyModuleContext:I

因此,我正在为我正在构建的应用程序研究一些模块的可能性,我想对它们进行版本化

这些DLL模块实现了一个具有此模块版本属性的接口。格式应为“主要。次要。构建”

如果我创建一个字符串类型的属性,则可能存在类似“Major.Minor”或“Major.Minor.Build.Revision”的版本。我想防止这种情况发生

所以我想到了一个类似于Double但有第三个数字的结构。我现在的问题是,这可能吗?如果可能,我如何实现这样的东西

在课堂上,它应该是这样的:

公共类MyModuleContext:IModuleContext { 公共ModuleVersion版本{get;set;}=1.0.0; //更多界面的东西。。。 }
感谢您的帮助:)

只需创建一个满足您需要的
类即可:

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;
    }
}
如果您主要要传递
版本
引用,那么最好将其实现为引用类型,否则会将值类型到处装箱


如果您想要实现值相等语义、比较逻辑等,这取决于您自己。这些都非常简单。

看看System.Version类,并对3个构建组件执行相同的操作