Memory<T> 结构

定义

表示连续内存区域。

generic <typename T>
public value class Memory : IEquatable<Memory<T>>
generic <typename T>
public value class Memory
public readonly struct Memory<T> : IEquatable<Memory<T>>
public readonly struct Memory<T>
type Memory<'T> = struct
Public Structure Memory(Of T)
Implements IEquatable(Of Memory(Of T))
Public Structure Memory(Of T)

类型参数

T

Memory<T>的类型。

继承
Memory<T>
实现

注解

类似 Span<T>Memory<T> 表示内存的连续区域。 但是Memory<T>,与引用结构不同Span<T>。 这意味着 Memory<T> 可以放置在托管堆上,而 Span<T> 不能。 因此,结构 Memory<T> 没有与 Span<T> 实例相同的限制。 具体而言:

  • 它可以用作类中的字段。

  • 它可以跨await``yield边界使用。

此外 Memory<T>,还可以用于 System.ReadOnlyMemory<T> 表示不可变内存或只读内存。

构造函数

Memory<T>(T[])

在整个指定数组上创建新的 Memory<T> 对象。

Memory<T>(T[], Int32, Int32)

从指定索引开始,创建包含数组的指定元素数的新 Memory<T> 对象。

属性

Empty

返回空的 Memory<T> 对象。

IsEmpty

指示当前实例是否为空。

Length

获取当前实例中的项数。

Span

返回当前实例的范围。

方法

CopyTo(Memory<T>)

Memory<T> 对象的内容复制到目标 Memory<T> 对象。

Equals(Memory<T>)

确定指定的 Memory<T> 对象是否等于当前对象。

Equals(Object)

确定指定对象是否等于当前对象。

GetHashCode()

返回此实例的哈希代码。

Pin()

Memory<T> 对象创建句柄。

Slice(Int32)

从指定索引处开始的当前内存外形成切片。

Slice(Int32, Int32)

从指定长度的指定索引处开始,在当前内存外形成切片。

ToArray()

将此内存的内容复制到新数组中。

ToString()

返回此 Memory<T> 对象的字符串表示形式。

TryCopyTo(Memory<T>)

将此内存的内容复制到目标 Memory<T> 实例。

运算符

Implicit(ArraySegment<T> to Memory<T>)

定义从 ArraySegment<T> 对象到 Memory<T> 对象的隐式转换。

Implicit(Memory<T> to ReadOnlyMemory<T>)

定义从 Memory<T> 对象到 ReadOnlyMemory<T> 对象的隐式转换。

Implicit(T[] to Memory<T>)

定义从数组到 Memory<T> 对象的隐式转换。

扩展方法

Trim<T>(Memory<T>, T)

删除内存区域中的指定元素的所有前导和尾随出现次数。

Trim<T>(Memory<T>, ReadOnlySpan<T>)

从内存区域中删除在只读跨度中指定的一组元素的所有前导和尾随出现次数。

TrimEnd<T>(Memory<T>, T)

删除字符内存区域中的指定元素的所有尾随出现次数。

TrimEnd<T>(Memory<T>, ReadOnlySpan<T>)

从内存区域中删除在只读跨度中指定的一组元素的所有尾随出现次数。

TrimStart<T>(Memory<T>, T)

删除内存区域中的指定元素的所有前导出现次数。

TrimStart<T>(Memory<T>, ReadOnlySpan<T>)

从内存区域中删除在只读跨度中指定的一组元素的所有前导出现次数。

适用于

另请参阅