typeof()是C#中的运算符,用于获取具有给定类型的类名的类型(系统类型)。通过使用typeof()operator,我们可以获得类型的名称,命名空间名称。它仅适用于编译时已知的类型。typeof()运算符不适用于变量或实例。
如果要获取变量的类型,可以使用GetType()方法。
主要的3个属性可获取有关类型的详细信息:
typeof(type).Name 或 this.GetType().Name –仅返回类名称。
typeof(type).FullName 或 this.GetType().FullName –它返回类名称以及命名空间。
typeof(type).Namespace 或 this.GetType().Namespace –仅返回命名空间。
注意:如果我们不使用任何属性,则默认情况下 typeof(type) 或 this.
返回FullName。GetType()
语法:
System.typetypeof(type); or System.typethis.GetType();
示例
typeof(int) - System.Int32 int a = 10; a.GetType() - System.Int32
示例1:打印编译时已知类型的Name,FullName,Namespace名称。
using System; using System.Text; namespace Test { class Program { static void Main(string[] args) { Console.WriteLine("for char type..."); Console.WriteLine("default: " + typeof(char)); Console.WriteLine("Name: " + typeof(char).Name); Console.WriteLine("FullName: " + typeof(char).FullName); Console.WriteLine("Namespace: " + typeof(char).Namespace); Console.WriteLine(); Console.WriteLine("for Int32 type..."); Console.WriteLine("default: " + typeof(Int32)); Console.WriteLine("Name: " + typeof(Int32).Name); Console.WriteLine("FullName: " + typeof(Int32).FullName); Console.WriteLine("Namespace: " + typeof(Int32).Namespace); Console.WriteLine(); Console.WriteLine("for bool type..."); Console.WriteLine("default: " + typeof(bool)); Console.WriteLine("Name: " + typeof(bool).Name); Console.WriteLine("FullName: " + typeof(bool).FullName); Console.WriteLine("Namespace: " + typeof(bool).Namespace); Console.WriteLine(); //按ENTER退出 Console.ReadLine(); } } }
输出结果
for char type... default: System.Char Name: Char FullName: System.Char Namespace: System for Int32 type... default: System.Int32 Name: Int32 FullName: System.Int32 Namespace: System for bool type... default: System.Boolean Name: Boolean FullName: System.Boolean Namespace: System