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> ,不是ref 結構。 這表示 Memory<T> 可以放在 Managed 堆積上,而 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>)

從記憶體區域中移除唯讀範圍中指定的所有開頭元素集項目。

適用於

另請參閱