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

ValueByteBlock 结构

表示一个值类型的字节块,提供高性能的字节缓冲区操作,避免堆分配开销。 实现了IByteBlock接口。

Definition

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

备注

ValueByteBlock作为值类型实现,适用于高频使用且对性能要求较高的场景。 支持内存池管理、自动扩容、读写操作等功能。 注意:由于是值类型,在多线程环境下使用时需要特别小心。

构造函数

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

属性

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

方法

Advance 推进指定数量的字节。
Clear 清除字节块中的所有数据,将所有字节设置为零。
DisposePerforms application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
EqualsIndicates whether this instance and a specified object are equal.
(继承自 ValueType。)
ExtendSize 扩展内存块大小以满足指定的空间需求。
GetHashCodeReturns the hash code for this instance.
(继承自 ValueType。)
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 将位置设置到数据开头。
SetLength 设置字节块的有效数据长度。
ToString 返回当前字节块的UTF-8字符串表示形式。
(重写 ValueTypeToString)
Write 将指定的字节跨度写入到写入器中。

扩展方法

AsByteBlock 将值类型的字节块转换为普通的字节块。
(由 ByteBlockExtension 定义。)
Map 将源对象的属性映射到目标对象的属性中。
(由 Mapper 定义。)
Map 将源对象映射到目标类型的实例。
(由 Mapper 定义。)
MapTTarget 将源对象映射到指定目标类型的新实例。
(由 Mapper 定义。)
SafeDispose 安全性释放(不用判断对象是否为空)。不会抛出任何异常。
(由 SystemExtension 定义。)
ToJsonString 转换为Json
(由 SerializeConvert 定义。)

显式接口实现

IBytesReaderGetMemory 获取指定数量的只读内存字节块。
IBytesReaderGetSpan 获取指定数量的只读字节跨度。

参见