Сопоставление типов .NET с типами WinRT в C#/WinRT
В этой статье перечислены сопоставления, которые C#/WinRT выполняет между типами среда выполнения Windows (WinRT) и типами .NET в классических приложениях, предназначенных для .NET 6 (или более поздней версии). В этих приложениях Visual Studio IntelliSense отображает тип .NET вместо типа среды выполнения Windows. Например, если метод среды выполнения Windows принимает параметр типа IVector<string>, IntelliSense отображает параметр типа IList<string>. Аналогичным образом в компоненте WinRT, созданном с помощью C#/WinRT, тип .NET используется в подписях членов. При использовании C#/WinRT для создания компонента среды выполнения Windows тип .NET преобразуется в соответствующий тип WinRT.
Сопоставления пользовательских типов C#/WinRT классифицируются по типам в Windows SDK или в WinUI 3 (WinUI 3 входит в состав пакета SDK для приложений Windows). Типы WinRT для сопоставлений Windows SDK находятся в пространстве имен Windows.*, а типы WinRT для сопоставлений WinUI 3 — в пространстве имен Microsoft.UI.Xaml.*. Существует две причины для сопоставления пользовательских типов, которые/WinRT C# делает для типов WinRT:
Типы WinRT, сопоставляемые с типами .NET с другим именем и/или пространством имен. Это пользовательские сопоставления, предназначенные для сопоставления типов WinRT с существующими эквивалентными типами .NET. Также встречаются случаи, когда сопоставление относится к другому типу (например, тип значения сопоставляется с типом класса).
Типы WinRT, сопоставляемые с типами .NET с тем же именем и пространством имен. Эти пользовательские сопоставления обычно используются для повышения производительности или расширения и реализуются непосредственно в C#. Большинство типов, имеющих одинаковые имена пространств имен и типов в WinRT и .NET, являются структурами (или типами, связанными со структурами, например перечислениями). В WinRT структуры не имеют других членов помимо полей и требуют вспомогательных типов, которые скрывает в себе .NET. Соответствующие структуры версии .NET имеют свойства и методы, предоставляющие функциональность скрытых вспомогательных типов (например, Windows.UI.Color).
Примечание.
Список сопоставлений между типами WinRT и .NET в контексте приложений UWP см. в разделе сопоставления .NET типов WinRT в UWP.
Сопоставления для типов WinRT в Windows SDK
Типы с другим именем и (или) пространством имен
Тип или пространство имен WinRT | Тип или пространство имен .NET |
---|---|
DateTime (Windows.Foundation) | DateTimeOffset (System) |
EventHandler<T> (Windows.Foundation) | EventHandler<T> (System) |
EventRegistrationToken (Windows.Foundation) | EventRegistrationToken (WinRT) |
HResult (Windows.Foundation) | Исключение (система) |
IClosable (Windows.Foundation) | IDisposable (System) |
IReference<T> (Windows.Foundation) | Значение nullable<T> (System) |
TimeSpan (Windows.Foundation) | TimeSpan (System) |
Uri (Windows.Foundation) | Uri (System) |
IIterable<T> (Windows.Foundation.Collections) | IEnumerable<T> (System.Collections.Generic) |
IIterator<T> (Windows.Foundation.Collections) | IEnumerator<T> (System.Collections.Generic) |
IMap<K, V> (Windows.Foundation.Collections) | IDictionary<TKey,TValue> (System.Collections.Generic) |
IMapView<K, V> (Windows.Foundation.Collections) | IReadOnlyDictionary<TKey,TValue> (System.Collections.Generic) |
IKeyValuePair<K, V> (Windows.Foundation.Collections) | KeyValuePair<TKey,TValue> (System.Collections.Generic) |
IVector<T> (Windows.Foundation.Collections) | IList<T> (System.Collections.Generic) |
IVectorView<T> (Windows.Foundation.Collections) | IReadOnlyList<T> (System.Collections.Generic) |
AttributeTargets (Windows.Foundation.Metadata) | AttributeTargets (System) |
AttributeUsageAttribute (Windows.Foundation.Metadata) | AttributeUsageAttribute (System) |
Matrix3x2 (Windows.Foundation.Numerics) | Matrix3x2 (System.Numerics) |
Matrix4x4 (Windows.Foundation.Numerics) | Matrix4x4 (System.Numerics) |
Plane (Windows.Foundation.Numerics) | Plane (System.Numerics) |
Quaternion (Windows.Foundation.Numerics) | Quaternion (System.Numerics) |
Vector2 (Windows.Foundation.Numerics) | Vector2 (System.Numerics) |
Vector3 (Windows.Foundation.Numerics) | Vector3 (System.Numerics) |
Vector4 (Windows.Foundation.Numerics) | Vector4 (System.Numerics) |
IBindableIterable (Windows.UI.Xaml.Interop) | IEnumerable (System.Collections) |
IBindableVector (Windows.UI.Xaml.Interop) | IList (System.Collections) |
TypeName (Windows.UI.Xaml.Interop) | Тип (Система) |
Типы с одинаковым именем и пространством имен
Тип | Пространство имен |
---|---|
IPropertyValue | Windows.Foundation |
IReferenceArray<T> | Windows.Foundation |
Point | Windows.Foundation |
Rect | Windows.Foundation |
Размер | Windows.Foundation |
Color | Windows.UI |
TypeKind | Windows.UI.Xaml.Interop |
Сопоставления для типов WinRT в WinUI
Типы с другим именем и (или) пространством имен
Тип или пространство имен WinRT | Тип или пространство имен .NET |
---|---|
INotifyCollectionChanged (Microsoft.UI.Xaml.Data) | INotifyCollectionChanged (System.Collections.Specialized) |
NotifyCollectionChangedEventHandler (Microsoft.UI.Xaml.Data) | NotifyCollectionChangedEventHandler (System.Collections.Specialized) |
NotifyCollectionChangedEventArgs (Microsoft.UI.Xaml.Data) | NotifyCollectionChangedEventArgs (System.Collections.Specialized) |
NotifyCollectionChangedAction (Microsoft.UI.Xaml.Data) | NotifyCollectionChangedAction (System.Collections.Specialized) |
DataErrorsChangedEventArgs (Microsoft.UI.Xaml.Data) | DataErrorsChangedEventArgs (System.ComponentModel) |
INotifyDataErrorInfo (Microsoft.UI.Xaml.Data) | INotifyDataErrorInfo (System.ComponentModel) |
INotifyPropertyChanged (Microsoft.UI.Xaml.Data) | INotifyPropertyChanged (System.ComponentModel) |
PropertyChangedEventHandler (Microsoft.UI.Xaml.Data) | PropertyChangedEventHandler (System.ComponentModel) |
PropertyChangedEventArgs (Microsoft.UI.Xaml.Data) | PropertyChangedEventArgs (System.ComponentModel) |
ICommand (Microsoft.UI.Xaml.Input) | ICommand (System.Windows.Input) |
IXamlServiceProvider (Microsoft.UI.Xaml) | IServiceProvider (System) |
Типы с одинаковым именем и пространством имен
Тип | Пространство имен |
---|---|
CornerRadius | Microsoft.UI.Xaml |
Длительность | Microsoft.UI.Xaml |
DurationType | Microsoft.UI.Xaml |
GridLength | Microsoft.UI.Xaml |
GridUnitType | Microsoft.UI.Xaml |
Толщина | Microsoft.UI.Xaml |
Генератор положение | Microsoft.UI.Xaml.Controls.Primitives |
«Матрица» | Microsoft.UI.Xaml.Media |
KeyTime | Microsoft.UI.Xaml.Media.Animation |
RepeatBehavior | Microsoft.UI.Xaml.Media.Animation |
RepeatBehaviorType | Microsoft.UI.Xaml.Media.Animation |
Matrix3D | (Microsoft.UI.Xaml.Media.Media3D |
Windows developer