本文整理汇总了C#中Pointer.Copy方法的典型用法代码示例。如果您正苦于以下问题:C# Pointer.Copy方法的具体用法?C# Pointer.Copy怎么用?C# Pointer.Copy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pointer
的用法示例。
在下文中一共展示了Pointer.Copy方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Append
// ReSharper restore UnusedMember.Local
public bool Append(Pointer ip, int len)
{
int spaceLeft = _length - _index;
if(spaceLeft < len)
return false;
var op = new Pointer(_buffer, _index);
op.Copy(ip, len);
_index += len;
return true;
}
示例2: EmitLiteral
private static Pointer EmitLiteral(Pointer dest, Pointer literal, int length, bool allowFastPath)
{
int n = length - 1;
if(n < 60)
{
var value = CompressorTag.Literal | (n << 2);
dest[0] = (byte)value;
dest += 1;
if(allowFastPath && length <= 16)
{
dest.Copy64(literal);
dest.Copy64(literal + 8, 8);
return dest + length;
}
}
else
{
var tmp = new Pointer(dest);
dest += 1;
int count = 0;
while(n > 0)
{
dest[count] = (byte)(n & 0xff);
n >>= 8;
count++;
}
Debug.Assert(count >= 1);
Debug.Assert(count <= 4);
tmp[0] = (byte)(CompressorTag.Literal | (59 + count) << 2);
dest += count;
}
dest.Copy(literal, length);
return dest + length;
}