2 回答

TA貢獻1812條經(jīng)驗 獲得超5個贊
用于獲取類型的 System.Type
對象。 typeof
表達式采用以下形式:
System.Type type = typeof(int);
備注
若要獲取表達式的運行時類型,可以使用 .NET Framework 方法 GetType,如以下示例中所示:
int i = 0;
System.Type type = i.GetType();
不能重載 typeof
運算符。
typeof
運算符也能用于公開的泛型類型。 具有不止一個類型參數(shù)的類型的規(guī)范中必須有適當數(shù)量的逗號。
下面的示例演示如何確定方法的返回類型是否是泛型 IEnumerable<T>。 假定此方法是 MethodInfo
類型的實例:
string s = method.ReturnType.GetInterface
(typeof(System.Collections.Generic.IEnumerable<>).FullName);
示例
C#
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
*/
此示例使用 GetType
方法確定用來包含數(shù)值計算的結(jié)果的類型。 這取決于結(jié)果數(shù)字的存儲要求。
C#
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()
);
}
}
添加回答
舉報