C#:调用非静态成员函数而不创建对象

时间:2018-11-01 05:44:10

标签: c#

在检查代码库时,我遇到了类似于以下内容的语句:

new Class().MemberFunction();

此语句实际上在做什么?是否在不创建此类的对象的情况下调用成员函数?

2 个答案:

答案 0 :(得分:1)

它正在创建Class的新实例-正如您可以清楚地看到代码的new Class()部分-唯一不常见的地方是它不存储引用该实例,但只需使用它来调用MemberFunction();

这意味着任何想要执行MemberFunction()的人都不需要保留对特定实例的引用(这反过来可能意味着MemberFunction()应该转换为静态方法,但是没有足够的信息可以确定)。

答案 1 :(得分:0)

  1. 创建一个新类(由于'new')

  2. 启动您调用的MemberFunction()

这意味着,它无法满足您的实际需求。

即使是静态的,也已经创建了一次类。