c#中typeof

C#typeof()运算符 (C# typeof() Operator)

typeof() is an operator in C#, it is used to get the type (system type) of with class name of a given type. By using typeof() operator, we can get the name of the type, namespace name. It works with only compile-time known types. typeof() operator does not work with the variables or instances.

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

If you want to get the type of a variable, you can use GetType() method.

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

There are main 3 properties to get the details about the type:

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

  1. typeof(type).Name or this.GetType().Name – It returns the class name only.

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

  2. typeof(type).FullName or this.GetType().FullName – It returns the class name along with the namespace.

    typeof(type).FullName或this.GetType()。FullName –返回类名和名称空间。

  3. typeof(type).Namespace or this.GetType().Namespace – It returns the namespace only.

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

Note: If we do not use any property, by default typeof(type) or this.GetType() returns the FullName.

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

Syntax:

句法:

    System.type typeof(type);
    or
    System.type this.GetType();

Example:

例:

    typeof(int)     - System.Int32
    int a = 10;
    a.GetType()     - System.Int32

Example 1: print the Name, FullName, Namespace name of the compile-time known types.

示例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();

            //hit ENTER to exit
            Console.ReadLine();
        }
    }
}

Output

输出量

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


Example 2: print the Name, FullName, Namespace name of the variables.

示例2:打印变量的名称,全名,命名空间名称。

using System;
using System.Text;

namespace Test
{
    class Program
    {
        //structure
        struct student
        {
            private string name;
            private int age;
        };
        static void Main(string[] args)
        {
            char a = 'X';
            int b = 10;
            bool c = false;

            Console.WriteLine("for variable \'a\'...");
            Console.WriteLine("default: " + a.GetType());
            Console.WriteLine("Name: " + a.GetType().Name);
            Console.WriteLine("FullName: " + a.GetType().FullName);
            Console.WriteLine("Namespace: " + a.GetType().Namespace);
            Console.WriteLine();

            Console.WriteLine("for variable \'b\'...");
            Console.WriteLine("default: " + b.GetType());
            Console.WriteLine("Name: " + b.GetType().Name);
            Console.WriteLine("FullName: " + b.GetType().FullName);
            Console.WriteLine("Namespace: " + b.GetType().Namespace);
            Console.WriteLine();

            Console.WriteLine("for variable \'c\'...");
            Console.WriteLine("default: " + c.GetType());
            Console.WriteLine("Name: " + c.GetType().Name);
            Console.WriteLine("FullName: " + c.GetType().FullName);
            Console.WriteLine("Namespace: " + c.GetType().Namespace);
            Console.WriteLine();

            student std = new student();
            Console.WriteLine("for structure \'std\'...");
            Console.WriteLine("default: " + std.GetType());
            Console.WriteLine("Name: " + std.GetType().Name);
            Console.WriteLine("FullName: " + std.GetType().FullName);
            Console.WriteLine("Namespace: " + std.GetType().Namespace);
            Console.WriteLine();

            //hit ENTER to exit
            Console.ReadLine();
        }
    }
}

Output

输出量

for variable 'a'...
default: System.Char
Name: Char
FullName: System.Char
Namespace: System

for variable 'b'...
default: System.Int32
Name: Int32
FullName: System.Int32
Namespace: System

for variable 'c'...
default: System.Boolean
Name: Boolean
FullName: System.Boolean
Namespace: System

for structure 'std'...
default: Test.Program+student
Name: student
FullName: Test.Program+student
Namespace: Test


翻译自: https://www.includehelp.com/dot-net/typeof-operator-in-c-sharp-with-example.aspx

c#中typeof

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐