typeof (référence C#)
Sert à obtenir l'objet System.Type d'un type.Une expression typeof prend la forme suivante :
System.Type type = typeof(int);
Notes
Pour obtenir le type d'exécution d'une expression, vous pouvez utiliser la méthode GetType du .NET Framework, comme dans l'exemple suivant :
int i = 0;
System.Type type = i.GetType();
L'opérateur typeof ne peut pas être surchargé.
L'opérateur typeof peut également être utilisé sur les types génériques ouverts.Les types ayant plusieurs paramètres de type doivent présenter le nombre approprié de virgules dans leur spécification.L'exemple suivant indique comment déterminer si le type de retour d'une méthode est un IEnumerable<T> générique.Supposez que la méthode est une instance de type MethodInfo :
string s = method.ReturnType.GetInterface
(typeof(System.Collections.Generic.IEnumerable<>).FullName);
Exemple
public class ExampleClass
{
public int sampleMember;
public void SampleMethod() {}
static void Main()
{
Type t = typeof(ExampleClass);
// Alternatively, you could use
// ExampleClass obj = new ExampleClass();
// Type t = obj.GetType();
Console.WriteLine("Methods:");
System.Reflection.MethodInfo[] methodInfo = t.GetMethods();
foreach (System.Reflection.MethodInfo mInfo in methodInfo)
Console.WriteLine(mInfo.ToString());
Console.WriteLine("Members:");
System.Reflection.MemberInfo[] memberInfo = t.GetMembers();
foreach (System.Reflection.MemberInfo mInfo in memberInfo)
Console.WriteLine(mInfo.ToString());
}
}
/*
Output:
Methods:
Void SampleMethod()
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()
System.Type GetType()
Members:
Void SampleMethod()
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()
System.Type GetType()
Void .ctor()
Int32 sampleMember
*/
Cet exemple utilise la méthode GetType pour déterminer le type utilisé pour contenir le résultat d'un calcul numérique.Cela dépend des besoins en mémoire du nombre résultant.
class GetTypeTest
{
static void Main()
{
int radius = 3;
Console.WriteLine("Area = {0}", radius * radius * Math.PI);
Console.WriteLine("The type is {0}",
(radius * radius * Math.PI).GetType()
);
}
}
/*
Output:
Area = 28.2743338823081
The type is System.Double
*/
Spécification du langage C#
Pour plus d'informations, consultez la Spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.
Voir aussi
Référence
Mots clés des opérateurs (référence C#)