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个属性可获取有关类型的详细信息:
typeof(type).Name or this.GetType().Name – It returns the class name only.
typeof(type).Name或this.GetType()。Name –仅返回类名称。
typeof(type).FullName or this.GetType().FullName – It returns the class name along with the namespace.
typeof(type).FullName或this.GetType()。FullName –返回类名和名称空间。
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