一款简单易用的基础网络通讯组件库。

ByteBlock 类

表示一个字节块,提供高效的字节缓冲区操作,支持自动扩容和内存池管理。 实现了IByteBlock接口,线程安全。

Definition

命名空间: TouchSocket.Core
程序集: TouchSocket.Core (在 TouchSocket.Core.dll 中) 版本:4.0.0-beta.143+5fcca7a4e70968794985dc3793adc50531308be6
C#
public sealed class ByteBlock : IByteBlock, 
	IByteBlockReader, IBytesReader, IByteBlockCore, IByteBlockWriter, IBytesWriter, 
	IBufferWriter<byte>, IDisposable
Inheritance
Object    ByteBlock
Implements
IBufferWriterByte, IDisposable, IByteBlock, IByteBlockCore, IByteBlockReader, IByteBlockWriter, IBytesReader, IBytesWriter

备注

ByteBlock作为引用类型实现,适用于需要在多个方法间传递或长期持有的场景。 支持内存池管理、线程安全的释放操作、自动扩容、读写操作等功能。

构造函数

ByteBlock(Int32) 使用指定容量初始化ByteBlock的新实例,使用默认的ArrayPoolT进行内存管理。
ByteBlock(MemoryByte) 使用指定内存块初始化ByteBlock的新实例。
ByteBlock(Int32, FuncInt32, MemoryByte, ActionMemoryByte) 使用指定容量和内存管理委托初始化ByteBlock的新实例。

属性

BytesRead 获取或设置已读取的字节数。
BytesRemaining 获取剩余可读取的字节数。
CanReadLength 获取当前可读取的字节长度。
Capacity 获取字节块的总容量。
FreeLength 获取字节块的可用空间长度。
Length 获取字节块中有效数据的长度。
Memory 获取字节块的只读内存表示形式。
Position 获取或设置字节块中的当前位置。
Sequence 获取当前可读取的字节序列。
Span 获取字节块的只读跨度表示形式。
SupportsRewind 获取一个值,该值指示写入器是否支持回退操作。
TotalMemory 获取字节块的完整内存表示形式。
TotalSequence 获取总的字节序列。
Using 获取一个值,该值指示字节块当前是否正在使用中。
Version 获取写入器的版本号。

方法

Advance 推进指定数量的字节。
Clear 清除字节块中的所有数据,将所有字节设置为零。
DisposePerforms application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
EqualsDetermines whether the specified object is equal to the current object.
(继承自 Object。)
ExtendSize 扩展内存块大小以满足指定的空间需求。
GetHashCodeServes as the default hash function.
(继承自 Object。)
GetMemoryReturns a MemoryT to write to that is at least the requested size (specified by sizeHint).
GetSpanReturns a SpanT to write to that is at least the requested size (specified by sizeHint).
GetTypeGets the Type of the current instance.
(继承自 Object。)
Read 读取字节到指定的跨度中。
Reset 重置字节块到初始状态,将位置和长度重置为零。
SeekToEnd 将位置设置到数据末尾。
SeekToStart 将位置设置到数据开头。
SetHolding 设置字节块的持有状态,防止在特定情况下被意外释放。
SetLength 设置字节块的有效数据长度。
ToString 返回当前字节块的UTF-8字符串表示形式。
(重写 ObjectToString)
Write 将指定的字节跨度写入到写入器中。

扩展方法

AsStream 将字节块转换为字节块流。
(由 ByteBlockExtension 定义。)
Map 将源对象的属性映射到目标对象的属性中。
(由 Mapper 定义。)
Map 将源对象映射到目标类型的实例。
(由 Mapper 定义。)
MapTTarget 将源对象映射到指定目标类型的新实例。
(由 Mapper 定义。)
ReadByte 从字节块读取一个字节值。
(由 ByteBlockExtension 定义。)
ReadByteBlock 从字节块读取一个字节块对象。
(由 ByteBlockExtension 定义。)
ReadDateTime 从字节块读取一个日期时间值。
(由 ByteBlockExtension 定义。)
ReadDecimal 从字节块读取一个十进制数值。
(由 ByteBlockExtension 定义。)
ReadDecimal 从字节块读取一个十进制数值,指定字节序。
(由 ByteBlockExtension 定义。)
ReadDouble 从字节块读取一个双精度浮点数值。
(由 ByteBlockExtension 定义。)
ReadDouble 从字节块读取一个双精度浮点数值,指定字节序。
(由 ByteBlockExtension 定义。)
ReadFloat 从字节块读取一个单精度浮点数值。
(由 ByteBlockExtension 定义。)
ReadFloat 从字节块读取一个单精度浮点数值,指定字节序。
(由 ByteBlockExtension 定义。)
ReadGuid 从字节块读取一个全局唯一标识符。
(由 ByteBlockExtension 定义。)
ReadInt16 从字节块读取一个16位有符号整数。
(由 ByteBlockExtension 定义。)
ReadInt16 从字节块读取一个16位有符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
ReadInt32 从字节块读取一个32位有符号整数。
(由 ByteBlockExtension 定义。)
ReadInt32 从字节块读取一个32位有符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
ReadInt64 从字节块读取一个64位有符号整数。
(由 ByteBlockExtension 定义。)
ReadInt64 从字节块读取一个64位有符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
ReadIsNull 从字节块读取状态标识。
(由 ByteBlockExtension 定义。)
ReadPackageTPackage 从字节块读取一个数据包对象。
(由 ByteBlockExtension 定义。)
ReadSByte 从字节块读取一个8位有符号整数。
(由 ByteBlockExtension 定义。)
ReadString 从字节块读取一个字符串。
(由 ByteBlockExtension 定义。)
ReadString 从字节块读取一个字符串,使用指定的固定头部类型。
(由 ByteBlockExtension 定义。)
ReadTimeSpan 从字节块读取一个时间跨度值。
(由 ByteBlockExtension 定义。)
ReadUInt16 从字节块读取一个16位无符号整数。
(由 ByteBlockExtension 定义。)
ReadUInt16 从字节块读取一个16位无符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
ReadUInt32 从字节块读取一个32位无符号整数。
(由 ByteBlockExtension 定义。)
ReadUInt32 从字节块读取一个32位无符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
ReadUInt64 从字节块读取一个64位无符号整数。
(由 ByteBlockExtension 定义。)
ReadUInt64 从字节块读取一个64位无符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
ReadVarUInt32 从字节块读取一个可变长度32位无符号整数。
(由 ByteBlockExtension 定义。)
SafeDispose 安全性释放(不用判断对象是否为空)。不会抛出任何异常。
(由 SystemExtension 定义。)
ToJsonString 转换为Json
(由 SerializeConvert 定义。)
WriteByte 向字节块写入一个字节值。
(由 ByteBlockExtension 定义。)
WriteByteBlock 向字节块写入另一个字节块的数据。
(由 ByteBlockExtension 定义。)
WriteByteSpan 向字节块写入字节跨度数据。
(由 ByteBlockExtension 定义。)
WriteDateTime 向字节块写入一个日期时间值。
(由 ByteBlockExtension 定义。)
WriteDecimal 向字节块写入一个十进制数值。
(由 ByteBlockExtension 定义。)
WriteDecimal 向字节块写入一个十进制数值,指定字节序。
(由 ByteBlockExtension 定义。)
WriteDouble 向字节块写入一个双精度浮点数值。
(由 ByteBlockExtension 定义。)
WriteDouble 向字节块写入一个双精度浮点数值,指定字节序。
(由 ByteBlockExtension 定义。)
WriteFloat 向字节块写入一个单精度浮点数值。
(由 ByteBlockExtension 定义。)
WriteFloat 向字节块写入一个单精度浮点数值,指定字节序。
(由 ByteBlockExtension 定义。)
WriteGuid 向字节块写入一个全局唯一标识符。
(由 ByteBlockExtension 定义。)
WriteInt16 向字节块写入一个16位有符号整数。
(由 ByteBlockExtension 定义。)
WriteInt16 向字节块写入一个16位有符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
WriteInt32 向字节块写入一个32位有符号整数。
(由 ByteBlockExtension 定义。)
WriteInt32 向字节块写入一个32位有符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
WriteInt64 向字节块写入一个64位有符号整数。
(由 ByteBlockExtension 定义。)
WriteInt64 向字节块写入一个64位有符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
WriteIsNullT 向字节块写入引用类型对象的状态标识。
(由 ByteBlockExtension 定义。)
WriteIsNullT 向字节块写入值类型对象的状态标识。
(由 ByteBlockExtension 定义。)
WriteNormalString 向字节块写入普通字符串,使用指定编码。
(由 ByteBlockExtension 定义。)
WriteNotNull 向字节块写入非标识。
(由 ByteBlockExtension 定义。)
WriteNull 向字节块写入标识。
(由 ByteBlockExtension 定义。)
WritePackageTPackage 向字节块写入一个数据包对象。
(由 ByteBlockExtension 定义。)
WriteSByte 向字节块写入一个8位有符号整数。
(由 ByteBlockExtension 定义。)
WriteString 向字节块写入一个字符串。
(由 ByteBlockExtension 定义。)
WriteString 向字节块写入一个字符串,使用指定的固定头部类型。
(由 ByteBlockExtension 定义。)
WriteTimeSpan 向字节块写入一个时间跨度值。
(由 ByteBlockExtension 定义。)
WriteUInt16 向字节块写入一个16位无符号整数。
(由 ByteBlockExtension 定义。)
WriteUInt16 向字节块写入一个16位无符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
WriteUInt32 向字节块写入一个32位无符号整数。
(由 ByteBlockExtension 定义。)
WriteUInt32 向字节块写入一个32位无符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
WriteUInt64 向字节块写入一个64位无符号整数。
(由 ByteBlockExtension 定义。)
WriteUInt64 向字节块写入一个64位无符号整数,指定字节序。
(由 ByteBlockExtension 定义。)
WriteVarUInt32 向字节块写入一个可变长度32位无符号整数。
(由 ByteBlockExtension 定义。)

显式接口实现

IBytesReaderGetMemory 获取指定数量的只读内存字节块。
IBytesReaderGetSpan 获取指定数量的只读字节跨度。
IBytesWriterWrittenCount 获取已写入的字节总数。

参见