C#中带有示例的typeof()运算符

C#typeof()运算符

typeof()是C#中的运算符,用于获取具有给定类型的类名的类型(系统类型)。通过使用typeof()operator,我们可以获得类型的名称,命名空间名称。它仅适用于编译时已知的类型。typeof()运算符不适用于变量或实例。

如果要获取变量的类型,可以使用GetType()方法。

主要的3个属性可获取有关类型的详细信息:

  1. typeof(type).Name 或 this.GetType().Name –仅返回类名称。

  2. typeof(type).FullName 或 this.GetType().FullName –它返回类名称以及命名空间。

  3. typeof(type).Namespace 或 this.GetType().Namespace –仅返回命名空间。

注意:如果我们不使用任何属性,则默认情况下 typeof(type) 或 this.GetType()返回FullName。

语法:

   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