Compartir a través de


IVectorView<T> Interfaz

Definición

Representa una vista inmutable en un vector.

.RED Esta interfaz parece código de .NET como System.Collections.Generic.IReadOnlyList<T> debido a la proyección del lenguaje .NET. En cualquier caso en el que un tipo de Windows Runtime haya implementado IVectorView<T>, el código .NET puede usar las API de IReadOnlyList<T> en su lugar.

public interface class IVectorView : IIterable<T>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(3152149068, 45283, 17795, 186, 239, 31, 27, 46, 72, 62, 86)]
template <typename T>
struct IVectorView : IIterable<T>
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.Guid(3152149068, 45283, 17795, 186, 239, 31, 27, 46, 72, 62, 86)]
public interface IReadOnlyList<T> : IEnumerable<T>
Public Interface IReadOnlyList(Of T)
Implements IEnumerable(Of T)

Parámetros de tipo

T
Atributos
Implementaciones

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (se introdujo en la versión v1.0)

Comentarios

Para las colecciones de lectura y escritura, la interfaz IVectorView<T> sigue siendo relevante, ya que el método IVector.GetView devuelve una instancia de IVectorView<T> .

Si cambia la colección subyacente, los métodos y las propiedades de la interfaz IVectorView<T> pueden producir una excepción.

C++/WinRT Si la colección subyacente ha cambiado, los métodos y las propiedades pueden producir una hresult_changed_state excepción.

C++/CX Si la colección subyacente ha cambiado, los métodos y las propiedades pueden producir una ChangedStateException excepción.

Al programar con .NET, esta interfaz está oculta y los desarrolladores deben usar la interfaz T> IReadOnlyList<si quieren implementar un tipo de lista o vector de solo lectura. En cualquier caso en el que un tipo de Windows Runtime haya implementado IVectorView<T>, el código .NET puede usar las API de IReadOnlyList<T> en su lugar. Esto incluye todas las API de Windows Runtime existentes y también escenarios como el uso de las API de Windows Runtime componentes implementados originalmente en extensiones de componentes de Visual C++ (C++/CX) desde una aplicación de C# o Visual Basic.

Funciones de extensión de C++/WinRT

Nota:

Existen funciones de extensión en los tipos de proyección de C++/WinRT para determinadas API de Windows Runtime. Por ejemplo, winrt::Windows::Foundation::IAsyncAction es el tipo de proyección de C++/WinRT para IAsyncAction. Las funciones de extensión no forman parte de la superficie de la interfaz binaria de la aplicación (ABI) de los tipos de Windows Runtime reales, por lo que no se muestran como miembros de las API de Windows Runtime. Pero puedes llamarlos desde cualquier proyecto de C++/WinRT. Consulta Funciones de C++/WinRT que amplían las API de Windows Runtime.

auto begin() const;

Devuelve un iterador al primer elemento de la colección, para su uso en algoritmos de C++, como bucles basados en for intervalos.

auto end() const;

Devuelve un iterador a un pasado el último elemento de la colección, para su uso en algoritmos de C++, como bucles basados en for intervalos.

Herencia de interfaz

IVectorView hereda IIterable. Los tipos que implementan IVectorView también implementan los miembros de interfaz de IIterable. De forma similar, si usa .NET, hay compatibilidad con IEnumerable<T>.

Propiedades

Size

Obtiene el número de elementos de la vista vectorial.

Métodos

GetAt(UInt32)

Devuelve el elemento en el índice especificado en la vista vectorial.

GetMany(UInt32, T[])

Recupera varios elementos de la vista vectorial que comienzan en el índice especificado.

C++/WinRT La sintaxis correcta para la proyección del lenguaje C++/WinRT es uint32_t GetMany(uint32_t startIndex, winrt::array_view<T> items);.

IndexOf(T, UInt32)

Recupera el índice de un elemento especificado en la vista vectorial.

Se aplica a