Événements
Créer des applications intelligentes
17 mars, 23 h - 21 mars, 23 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Un type est un type non managé s’il s’agit de l’un des types suivants :
sbyte
, byte
, short
, ushort
, int
, uint
, long
, ulong
, nint
, nuint
, char
, float
, double
, decimal
ou bool
Vous pouvez utiliser la contrainte unmanaged
pour spécifier qu’un paramètre de type est un type non managé non pointeur, non nullable.
Un type de struct construit qui contient des champs de types non managés uniquement n’est pas géré, comme le montre l’exemple suivant :
using System;
public struct Coords<T>
{
public T X;
public T Y;
}
public class UnmanagedTypes
{
public static void Main()
{
DisplaySize<Coords<int>>();
DisplaySize<Coords<double>>();
}
private unsafe static void DisplaySize<T>() where T : unmanaged
{
Console.WriteLine($"{typeof(T)} is unmanaged and its size is {sizeof(T)} bytes");
}
}
// Output:
// Coords`1[System.Int32] is unmanaged and its size is 8 bytes
// Coords`1[System.Double] is unmanaged and its size is 16 bytes
Un struct générique peut être la source des types construits non managés et managés. L’exemple précédent définit un struct Coords<T>
générique et présente les exemples de types construits non managés. L’exemple d’un type managé est Coords<object>
. Il est géré, car il possède les champs du type object
, qui est géré. Si vous souhaitez que tous les types construits soient des types non managés, utilisez la contrainte unmanaged
dans la définition d’un struct générique :
public struct Coords<T> where T : unmanaged
{
public T X;
public T Y;
}
Pour plus d’informations, consultez la section Types de pointeur de la Spécification du langage C#.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événements
Créer des applications intelligentes
17 mars, 23 h - 21 mars, 23 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenant