Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GetType()在这个语句中做什么?_C#_.net - Fatal编程技术网

C# GetType()在这个语句中做什么?

C# GetType()在这个语句中做什么?,c#,.net,C#,.net,在以下声明中: Stream stream = GetType().Assembly.GetManifestResourceStream(resource); GetType()的作用是什么?它是如何工作的?返回当前实例的类型,从中编写此代码 如果这样写,我想代码的可读性会更高: Stream stream = this.GetType().Assembly.GetManifestResourceStream(resource); 我不确定该方法的确切实现,它只返回当前实例的确切运行时类型。

在以下声明中:

Stream stream = GetType().Assembly.GetManifestResourceStream(resource);
GetType()
的作用是什么?它是如何工作的?

返回当前实例的类型,从中编写此代码

如果这样写,我想代码的可读性会更高:

Stream stream = this.GetType().Assembly.GetManifestResourceStream(resource);

我不确定该方法的确切实现,它只返回当前实例的确切运行时类型。

GetType返回对象的类型。当你这样做的时候,你可以暗示

this.GetType();
它将返回从中调用GetType()的类的类型信息。程序集获取类对象定义所在程序集的相关信息,GetManifestResourceStream返回一个包含程序集中资源的流。通常,这是用来获取诸如嵌入式图像、图标、文档等内容的


什么的当前实例?谢谢。此代码是在其方法中编写的对象的当前实例。你知道,有些类,这些类包含方法,而这些方法包含的代码就像你的问题中显示的那样。方法有两种类型:实例方法和静态方法。在您的例子中,此代码似乎驻留在实例方法中。只有当您已经有某个类的实例时,才能调用实例方法。例如:
var instance=newsomeobject()然后如果调用
instance.SomeMethod()
并在使用
GetType()
的SomeMethod中,这将返回
SomeObject
。这是有意义的,因为我将上述代码复制到了一个静态实例中,并得到错误“非静态字段、方法或属性对象.GetType()需要对象引用”。我有一个控制台应用程序,因此是静态方法。是的,这就是为什么会出现错误。此方法仅在实例方法内部可用。因此,如果希望获得类似的效果,请再次将该方法作为实例,然后在程序实例上调用它:
new program().SomeMethod()。如果你能开玩笑的话-静态C#Main()不是对象,对吗?如果是,是什么?那么,它是否不属于OO领域?请在没有附带评论的情况下进行否决投票!谢谢你,特别是你加上了“这个”-我投了赞成票。