typeof (C# odniesienia)
Stosowane w celu uzyskania System.Type obiektu typu.A typeof wyrażenie ma następującą postać:
System.Type type = typeof(int);
Uwagi
Aby uzyskać typu run-time wyrażenie, można użyć.NET Framework metoda GetType, jak w poniższym przykładzie:
int i = 0;
System.Type type = i.GetType();
typeof Operator nie mogą być przeciążone.
typeof Operator można również na otwartych typy rodzajowe.Typy z więcej niż jeden parametr typu musi mieć odpowiednią liczbę przecinkami w specyfikacji.Poniższy przykład pokazuje, jak ustalić, czy zwracany typ metody jest rodzajowy IEnumerable<T>.Założono, że metoda jest wystąpienie typu obiektu MethodInfo:
string s = method.ReturnType.GetInterface
(typeof(System.Collections.Generic.IEnumerable<>).FullName);
Przykład
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
*/
W przykładzie użyto GetType metody w celu określenia typu, który jest używany do zawierać wynik obliczeń numerycznych.To zależy od wymagań składowania numeru wynikowego.
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
*/
Specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka to najlepsze źródło informacji dotyczących składni i zastosowania języka C#.
Zobacz też
Informacje
Operator słowa kluczowe (C# odniesienia)