Memory<T> 結構
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表連續的記憶體區域。
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> 專案類型。
- 繼承
- 實作
-
IEquatable<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>) | |
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>) |
從記憶體區域中移除唯讀範圍中指定的所有開頭元素集項目。 |