Span<T> 构造函数

定义

重载

Span<T>(T)

在指定的引用周围创建长度为 1 的新 Span<T>

Span<T>(T[])

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

Span<T>(Void*, Int32)

从指定内存地址开始的指定数量的 T 元素创建新的 Span<T> 对象。

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

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

Span<T>(T)

Source:
Span.cs
Source:
Span.cs
Source:
Span.cs

在指定的引用周围创建长度为 1 的新 Span<T>

public:
 Span(T % reference);
public Span (ref T reference);
new Span<'T> : 'T -> Span<'T>
Public Sub New (ByRef reference As T)

参数

reference
T

对数据的引用。

适用于

Span<T>(T[])

Source:
Span.cs
Source:
Span.cs
Source:
Span.cs

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

public:
 Span(cli::array <T> ^ array);
public Span (T[]? array);
public Span (T[] array);
new Span<'T> : 'T[] -> Span<'T>
Public Sub New (array As T())

参数

array
T[]

从中创建 Span<T> 对象的数组。

例外

T 是引用类型,array 不是 T类型的数组。

注解

如果 arraynull,此构造函数将返回 nullSpan<T>

适用于

Span<T>(Void*, Int32)

Source:
Span.cs
Source:
Span.cs
Source:
Span.cs

重要

此 API 不符合 CLS。

从指定内存地址开始的指定数量的 T 元素创建新的 Span<T> 对象。

public:
 Span(void* pointer, int length);
[System.CLSCompliant(false)]
public Span (void* pointer, int length);
[<System.CLSCompliant(false)>]
new Span<'T> : nativeptr<unit> * int -> Span<'T>

参数

pointer
Void*

指向内存中指定数量的 T 元素起始地址的指针。

length
Int32

要包含在 Span<T>中的 T 元素数。

属性

例外

T 是引用类型或包含指针,因此不能存储在非托管内存中。

length 为负数。

注解

此构造函数应谨慎使用,因为它从 void*类型的内存块创建任意类型化 T,并且构造函数既不会验证 pointer 也不 length

适用于

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

Source:
Span.cs
Source:
Span.cs
Source:
Span.cs

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

public:
 Span(cli::array <T> ^ array, int start, int length);
public Span (T[]? array, int start, int length);
public Span (T[] array, int start, int length);
new Span<'T> : 'T[] * int * int -> Span<'T>
Public Sub New (array As T(), start As Integer, length As Integer)

参数

array
T[]

源数组。

start
Int32

要包含在新 Span<T>中的第一个元素的从零开始的索引。

length
Int32

要包含在新 Span<T>中的元素数。

例外

array null,但 startlength 为非零。

-或-

start 位于数组边界之外。

-或-

startlength 超过数组中的元素数。

T 是引用类型,array 不是 T类型的数组。

注解

此方法在 arraynull时返回 default

适用于