public class SerialNum
{
public SerialNum()
{
m_NumByteArr = new byte[4] { 48, 48, 48, 48 };
ExcludeChar = new List<byte>
{
(byte) 'A',
(byte) 'E',
(byte) 'I',
(byte) 'O',
(byte) 'U'
};
}
public List<byte> ExcludeChar { get; }
public string Number
{
get
{
return Encoding.Default.GetString(m_NumByteArr);
}
}
protected byte[] m_NumByteArr;
public bool AddOne()
{
m_NumByteArr[3] = AddChar(m_NumByteArr[3]);
if (m_NumByteArr[3] > (byte)'Z')
{
m_NumByteArr[2] = AddChar(m_NumByteArr[2]);
m_NumByteArr[3] = (byte)'0';
}
if (m_NumByteArr[2] > (byte)'Z')
{
m_NumByteArr[1] = AddChar(m_NumByteArr[1]);
m_NumByteArr[2] = (byte)'0';
}
if (m_NumByteArr[1] > (byte)'Z')
{
m_NumByteArr[0] = AddChar(m_NumByteArr[0]);
m_NumByteArr[1] = (byte)'0';
}
return m_NumByteArr[0] <= (byte)'Z';
}
public bool SubOne()
{
m_NumByteArr[3] = SubChar(m_NumByteArr[3]);
if (m_NumByteArr[3] < (byte)'0')
{
m_NumByteArr[2] = SubChar(m_NumByteArr[2]);
m_NumByteArr[3] = (byte)'Z';
}
if (m_NumByteArr[2] < (byte)'0')
{
m_NumByteArr[1] = SubChar(m_NumByteArr[1]);
m_NumByteArr[2] = (byte)'Z';
}
if (m_NumByteArr[1] < (byte)'0')
{
m_NumByteArr[0] = SubChar(m_NumByteArr[0]);
m_NumByteArr[1] = (byte)'Z';
}
return m_NumByteArr[0] >= (byte)'0';
}
private byte AddChar(byte ch)
{
while (true)
{
ch++;
if (!ExcludeChar.Contains(ch))
{
break;
}
}
if (ch == ((byte)'9' + 1))
{
ch = (byte)'B';
}
return ch;
}
private byte SubChar(byte ch)
{
while (true)
{
ch--;
if (!ExcludeChar.Contains(ch))
{
break;
}
}
if (ch == ((byte)'A' - 1))
{
ch = (byte)'9';
}
return ch;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2021-12-02 C# 设计模式