IVectorView<T> Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет неизменяемое представление в векторе.
.ЧИСТАЯ Этот интерфейс отображается в коде .NET как System.Collections.Generic.IReadOnlyList<T> из-за проекции языка .NET. В любом случае, если тип среда выполнения Windows реализует IVectorView<T>, код .NET может использовать API IReadOnlyList<T>.
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)
Параметры типа
- T
- Атрибуты
- Реализации
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.FoundationContract (появилось в v1.0)
|
Комментарии
Для коллекций для чтения и записи интерфейс IVectorView<T> по-прежнему актуален, так как метод IVector.GetView возвращает экземпляр IVectorView<T> .
Если базовая коллекция изменяется, методы и свойства интерфейса IVectorView<T> могут вызвать исключение.
C++/WinRT Если базовая коллекция была изменена, методы и свойства могут вызвать
hresult_changed_state
исключение.
C++/CX Если базовая коллекция была изменена, методы и свойства могут вызвать
ChangedStateException
исключение.
При программировании с помощью .NET этот интерфейс скрыт, и разработчики должны использовать интерфейс IReadOnlyList<T> , если они хотят реализовать тип вектора или списка только для чтения. В любом случае, когда тип среда выполнения Windows реализовал IVectorView<T>, код .NET может использовать API IReadOnlyList<T>. Сюда входят все существующие API среда выполнения Windows, а также сценарии, такие как использование API среда выполнения Windows компонентов, изначально реализованных в расширениях компонентов Visual C++ (C++/CX) из приложения C# или Visual Basic.
Функции расширения C++/WinRT
Примечание
Функции расширения существуют в типах проекций C++/WinRT для определенных API среда выполнения Windows. Например, winrt::Windows::Foundation::IAsyncAction — это тип проекции C++/WinRT для IAsyncAction. Функции расширения не являются частью поверхности двоичного интерфейса приложения (ABI) фактических типов среда выполнения Windows, поэтому они не перечислены как члены СРЕДА ВЫПОЛНЕНИЯ WINDOWS API. Но их можно вызывать из любого проекта C++/WinRT. См. статью Функции C++/WinRT, расширяющие среда выполнения Windows API.
auto begin() const;
Возвращает итератор к первому элементу коллекции для использования в алгоритмах C++, таких как циклы на основе for
диапазона.
auto end() const;
Возвращает итератор после последнего элемента коллекции для использования в алгоритмах C++, таких как циклы на основе for
диапазона.
Наследование интерфейса
IVectorView наследует IIterable. Типы, реализующие IVectorView, также реализуют члены интерфейса IIterable. Аналогичным образом, если вы используете .NET, существует поддержка IEnumerable<T>.
Свойства
Size |
Возвращает количество элементов в векторном представлении. |
Методы
GetAt(UInt32) |
Возвращает элемент по указанному индексу в векторном представлении. |
GetMany(UInt32, T[]) |
Извлекает несколько элементов из векторного представления, начиная с заданного индекса.
|
IndexOf(T, UInt32) |
Извлекает индекс указанного элемента в векторном представлении. |