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

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

  • 它可以跨awaityield边界使用。

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

构造函数

名称 说明
Memory<T>(T[], Int32, Int32)

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

Memory<T>(T[])

在整个指定数组上创建一个新 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, Int32)

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

Slice(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>, ReadOnlySpan<T>)

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

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

从内存区域中删除指定元素的所有前导和尾随匹配项。

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

从内存区域中删除在只读跨度中指定的一组元素的所有尾随匹配项。

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

从字符内存区域中删除指定元素的所有尾随匹配项。

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

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

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

从内存区域中删除指定元素的所有前导事件。

适用于

另请参阅