GetType() 是一个方法还是一个类
本文关键字:一个 方法 GetType | 更新日期: 2023-09-27 17:56:32
我遇到了这段代码:
int myInt = 0;
textBox1.Text = myInt.GetType().Name;
根据 .NET 文档,GetType() 是一个方法,而不是一个类。
我的问题是,我如何才能将点与方法一起使用,例如GetType().Name
?
方法可以返回一个类实例,这里是类Type
的实例。在此对象上,您可以访问属性、其他方法等。
您的代码可以编写如下:
int myInt = 0;
Type t = myInt.GetType();
textBox1.Text = t.Name;
也许这样更容易理解。
编辑:像 GetType()
这样的方法调用会执行该方法,您在.
之后执行的所有操作都将应用于该方法的返回值,在本例中为 Type
类型的对象。
>GetType()
是一个返回类实例(在本例中为Type
类的实例)的方法。
返回的Type
实例的成员通过点语法进行访问。
> 由于 GetType()
返回对象的实例,因此可以使用点来访问它返回的对象的属性或方法。
该术语通常被称为链接(当然在 C# 和 JavaScript 中)或流畅接口。
因此,正如其他两个答案所建议的那样,您返回一个实例并执行属于该类的方法。
引用维基百科:
在软件工程中,一个流畅的界面(由Eric Evans和 Martin Fowler)是一个面向对象的API的实现,旨在提供 更具可读性的代码。
流畅接口通常通过使用方法链来中继后续调用的指令>上下文来实现(但流畅的接口需要的不仅仅是方法 链接)。通常,上下文是 通过被调用方法的返回值定义 自引用,其中新上下文等效于最后一个上下文 通过返回 void 上下文终止。
from MSDN
;
Return Value
Type: System.Type
The exact runtime type of the current instance.
所以基本上,它返回一个类实例。这就是为什么您也可以访问其属性的原因。让我们看一下这个例子;
int i = 0;
Console.WriteLine(i.GetType()); // Gets the System.Type of the current instance.
Console.WriteLine(i.GetType().Name); // Gets the name of the current member.
输出将是
System.Int32
Int32
这是一个DEMO
.
在这种情况下,Name
属性是MemberInfo.Name
属性。它包括System.Reflection
命名空间。
获取此成员的名称。
Object.GetType()
返回current instance
的确切运行时类型。
例:
using System;
public class MyBaseClass {
}
public class MyDerivedClass: MyBaseClass {
}
public class Test
{
public static void Main()
{
MyBaseClass myBase = new MyBaseClass();
MyDerivedClass myDerived = new MyDerivedClass();
object o = myDerived;
MyBaseClass b = myDerived;
Console.WriteLine("mybase: Type is {0}", myBase.GetType());
Console.WriteLine("myDerived: Type is {0}", myDerived.GetType());
Console.WriteLine("object o = myDerived: Type is {0}", o.GetType());
Console.WriteLine("MyBaseClass b = myDerived: Type is {0}", b.GetType());
}
}
// The example displays the following output:
// mybase: Type is MyBaseClass
// myDerived: Type is MyDerivedClass
// object o = myDerived: Type is MyDerivedClass
// MyBaseClass b = myDerived: Type is MyDerivedClass
参考 : MSDN
因为 GetType() 返回一个对象,C# 语言允许你调用要返回的对象的任何成员,所以你的代码是一个非常有效的示例。
编辑:检查Jobo的答案,以更好地了解如何以更易于理解的形式编写代码
GetType() 获取一个表示指定类型的 Type 对象。Type 表示类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义。在类型上,您可以访问方法或属性。