ClassLibraryWeiBao/QR二维码/Versions/ErrorCorrectionBlocks.cs

(完整代码) 1KB

namespace Gma.QrCodeNet.Encoding.Versions
{
	internal struct ErrorCorrectionBlocks
	{
		internal int NumErrorCorrectionCodewards { get; private set; }
		
		internal int NumBlocks { get; private set; }
		
		internal int ErrorCorrectionCodewordsPerBlock { get; private set;}
		
		private ErrorCorrectionBlock[] m_ECBlock;
		
		internal ErrorCorrectionBlocks(int numErrorCorrectionCodewords, ErrorCorrectionBlock ecBlock)
			: this()
		{
			this.NumErrorCorrectionCodewards = numErrorCorrectionCodewords;
			this.m_ECBlock = new ErrorCorrectionBlock[]{ecBlock};
			
			this.initialize();
		}
		
		internal ErrorCorrectionBlocks(int numErrorCorrectionCodewords, ErrorCorrectionBlock ecBlock1, ErrorCorrectionBlock ecBlock2)
			: this()
		{
			this.NumErrorCorrectionCodewards = numErrorCorrectionCodewords;
			this.m_ECBlock = new ErrorCorrectionBlock[]{ecBlock1, ecBlock2};
			
			this.initialize();
		}
		
		/// <summary>
		/// Get Error Correction Blocks
		/// </summary>
		internal ErrorCorrectionBlock[] GetECBlocks()
		{
			return m_ECBlock;
		}
		
		/// <summary>
		/// Initialize for NumBlocks and ErrorCorrectionCodewordsPerBlock
		/// </summary>
		private void initialize()
		{
			if(m_ECBlock == null)
				throw new System.ArgumentNullException("ErrorCorrectionBlocks array doesn't contain any value");
			
			NumBlocks = 0;
			int blockLength = m_ECBlock.Length;
			for(int i = 0; i < blockLength; i++)
			{
				NumBlocks += m_ECBlock[i].NumErrorCorrectionBlock;
			}
			
			
			ErrorCorrectionCodewordsPerBlock = NumErrorCorrectionCodewards / NumBlocks;
		}
	}
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。