.NET-Zuordnungen von WinRT-Typen in C#/WinRT

In diesem Artikel werden die Zuordnungen aufgeführt, die C#/WinRT zwischen WinRT-Typen (Windows-Runtime) und .NET-Typen in Desktop-Apps für .NET 6 (oder höher) vornimmt. In diesen Apps zeigt Visual Studio IntelliSense den .NET-Typ anstelle des Windows Runtime-Typs an. Wenn beispielsweise eine Windows-Runtime Methode einen Parameter vom Typ IVector<string> übernimmt, zeigt IntelliSense einen Parameter vom Typ IList<string> an. Ebenso verwenden Sie in einer WinRT-Komponente, die mit C#/WinRT geschrieben wurde, den .NET-Typ in Membersignaturen. Wenn Sie C#/WinRT verwenden, um eine Windows Runtime-Komponente zu generieren, wird der .NET-Typ in den entsprechenden WinRT-Typ übersetzt.

Die benutzerdefinierten C#/WinRT-Typzuordnungen werden nach Typen im Windows SDK oder in WinUI 3 kategorisiert (WinUI 3 ist Teil des Windows App SDK). Die WinRT-Typen für Windows SDK-Zuordnungen befinden sich unter den Windows.*-Namespaces, und die WinRT-Typen für WinUI 3-Zuordnungen befinden sich unter den Microsoft.UI.Xaml.*-Namespaces. Es gibt zwei Gründe für benutzerdefinierte Typzuordnungen, die C#/WinRT für WinRT-Typen vornimmt:

  • WinRT-Typen, die .NET-Typen mit einem anderen Namen und/oder Namespace zugeordnet werden. Diese benutzerdefinierten Zuordnungen dienen dem Zuordnen von WinRT-Typen zu vorhandenen äquivalenten .NET-Typen. Es gibt auch Fälle, in denen die Zuordnung zu einem anderen Typ erfolgt (z. B. wird ein value-Typ einem class-Typ zugeordnet).

  • WinRT-Typen, die .NET-Typen mit demselben Namen und Namespace zugeordnet werden. Diese benutzerdefinierten Zuordnungen gibt es in der Regel aus Leistungs- oder Verbesserungsgründen, und sie werden direkt in C# implementiert. Die meisten Typen mit demselben Namespace- und Typnamen in WinRT und .NET sind Strukturen (oder Typen, die Strukturen zugeordnet sind, z. B. Aufzählungen bzw. Enumerationen). In WinRT haben Strukturen keine anderen Member als Felder und erfordern Hilfstypen, die in .NET ausgeblendet sind. Die .NET-Versionen dieser Strukturen haben Eigenschaften und Methoden, die die Funktionalität der ausgeblendeten Hilfstypen bereitstellen (z. B. Windows.UI.Color).

Hinweis

Eine Liste der Zuordnungen zwischen WinRT- und .NET-Typen im Kontext von UWP-Apps finden Sie unter .NET-Zuordnungen von WinRT-Typen in UWP.

Zuordnungen für WinRT-Typen im Windows SDK

Typen mit einem anderen Namen und/oder Namespace

WinRT-Type/-Namespace .NET-Type/-Namespace
DateTime (Windows.Foundation) DateTimeOffset (System)
EventHandler<T> (Windows.Foundation) EventHandler<T> (System)
EventRegistrationToken (Windows.Foundation) EventRegistrationToken (WinRT)
HResult (Windows.Foundation) Exception (System)
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) Type (System)

Typen mit demselben Namen und Namespace

Typ Namespace
IPropertyValue Windows.Foundation
IReferenceArray<T> Windows.Foundation
Punkt Windows.Foundation
Rect Windows.Foundation
Size Windows.Foundation
Color Windows.UI
TypeKind Windows.UI.Xaml.Interop

Zuordnungen für WinRT-Typen in WinUI

Typen mit einem anderen Namen und/oder Namespace

WinRT-Type/-Namespace .NET-Type/-Namespace
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)

Typen mit demselben Namen und Namespace

Typ Namespace
CornerRadius Microsoft.UI.Xaml
Duration Microsoft.UI.Xaml
DurationType Microsoft.UI.Xaml
GridLength Microsoft.UI.Xaml
GridUnitType Microsoft.UI.Xaml
Stärke Microsoft.UI.Xaml
GeneratorPosition Microsoft.UI.Xaml.Controls.Primitives
Matrix 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