C#类似版本号有多个分割符可以产生的排列组合,

我采用asp.net进行演示

金沙官网线上 1

using System;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var b = Request.QueryString["b"];
if (string.IsNullOrEmpty(b))
{
b = "0,3,5";
}

var a = b;//GetNewBb("2,3,5", b);//没有解决低位重新计算
while (a != "2,3,5")
{
b = a;
a = GetNewVersion("2,3,5", b);
Response.Write(a + "<br />");
}
}
private string GetNewVersion(string max, string current,char separator=',')
{
var a = max.Split(separator);//分割字符
var b = current.Split(separator);//分割字符2
var flag = true;//设第一个大
for (int i = a.Length - 1; i > 0; i--)
{
if (int.Parse(b[i]) < int.Parse(a[i]))
{
b[i] = (int.Parse(b[i]) + 1).ToString();
break;
}
if (i - 1 >= 0&& int.Parse(b[i-1]) < int.Parse(a[i-1]))
{
for (var j = i; j < a.Length; j++)
{
b[j] = "0";
}
b[i-1] = (int.Parse(b[i-1]) + 1).ToString();
break;
}
}

for (int k = 0; k < a.Length-1; k++)
{
if (int.Parse(a[k]) < int.Parse(b[k]))
{
flag = false;//说明current是大的如果比较大小,改返回为bool,最后return flag即可
break;
}
}
return string.Join(",", b);
}
}

金沙官网线上 2

送给有缘人吧,可以获得类似版本号的功能,也可以对比两个版本号,我这里是其他需要用逗号分割的

微信

 

1. GNU版

主版本号 . 子版本号 [. 修正版本号 [. 编译版本号 ]]

Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]]

示例 : 1.2.1, 2.0, 5.0.0 build-13124

管理策略:

项目初版本时,版本号可以为0.1或 0.1.0,也可以为1.0或1.0.0。

当项目在进行了局部修改或bug修正时,主版本号和子版本号都不变,修正版本号加1;

当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加1,修正版本号复位为0,因而可以被忽略掉;

当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加1;

编译版本号一般是编译器在编译过程中自动生成的,我们只定义其格式,并不进行人为控制。

 

2. Windows版

主版本号 . 子版本号 [ 修正版本号 [. 编译版本号 ]]

Major_Version_Number.Minor_Version_金沙官网线上,Number[Revision_Number[.Build_Number]]

示例: 1.21, 2.0

管理策略:

项目初版时,版本号为1.0或1.00;

当项目在进行了局部修改或bug修正时,主版本号和子版本号都不变,修正版本号加1;

当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加1,修正版本号复位为0,因而可以被忽略掉;

当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加1;

编译版本号一般是编译器在编译过程中自动生成的,我们只定义其格式,并不进行人为控制。

另外,还可以在版本号后面加入 Alpha、Beta、Gamma、Current、RC (Release Candidate)、Release、Stable 等后缀,在这些后缀后面还可以加入1数字的版本号。对于用户来说,如果某个软件的主版本号进行了升级,用户还想继续那个软件,则发行软件的公司一般要对用户收取升级费用;而如果子版本号或修正版本号发生了升级,一般来说是免费的。

 

版本控制比较普遍的 3 种命名格式 :GNU 风格的版本号命名格式Windows 风格的版本号命名格式.Net Framework 风格的版本号命名格式

Mac

本文由金沙官网线上发布于编程,转载请注明出处:C#类似版本号有多个分割符可以产生的排列组合,

您可能还会对下面的文章感兴趣: