例如,我有一些带有一个void方法的类。

这是我的课:

class MyClassTest
{
    public void Print()
    {
        Console.WriteLine("Hello");
    }
}


我是新手,有点困惑,这两个方法调用之间有区别吗?

这是我的主要方法

static void Main(string[] args)
{
    //first call
    MyClassTest ms = new MyClassTest();
    ms.Print();

    //second call
    new MyClassTest().Print();
}

最佳答案

在下面的情况下,当您要保留对已构造对象的引用并稍后对其执行一些进一步的操作时,将需要执行此操作。

MyClassTest ms = new MyClassTest();
ms.Print();


而在以下情况下,仅当您不再关心构造后的构造对象,而只是对调用方法Print感兴趣时,才需要这样做。

new MyClassTest().Print();


这两种情况之间的细微差异在于
被引用的对象将执行进一步的操作,它很可能会在不再引用的对象之后被销毁,例如,上面的第二个示例,因为GC(垃圾收集器)将发现它没有引用,因此决定摆脱它。

关于c# - C#中这两个方法调用之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47971685/

10-13 03:15