C# 是否可以使用1.0.0格式的结构?
因此,我正在为我正在构建的应用程序研究一些模块的可能性,我想对它们进行版本化 这些DLL模块实现了一个具有此模块版本属性的接口。格式应为“主要。次要。构建” 如果我创建一个字符串类型的属性,则可能存在类似“Major.Minor”或“Major.Minor.Build.Revision”的版本。我想防止这种情况发生 所以我想到了一个类似于Double但有第三个数字的结构。我现在的问题是,这可能吗?如果可能,我如何实现这样的东西 在课堂上,它应该是这样的: 公共类MyModuleContext:IModuleContext { 公共ModuleVersion版本{get;set;}=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
感谢您的帮助:)只需创建一个满足您需要的
类即可:
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个构建组件执行相同的操作