0

如果那里没有代码,代码还有什么含义?对我来说似乎没有必要。

4

3 回答 3

2

立即想到的事情是在请求对象的新实例和寻找与某个对象命名相同的函数之间消除歧义。

class Foo
{
    public Foo() {};
}

static Foo Foo()
{
    ...
}

Foo myfoo = Foo(); // what do you want?
于 2012-04-22T04:41:32.137 回答
1

如何避免歧义?

public class Foo 
{
    public override string ToString()
    {
        return "I'm a Foo!";
    }
}

public class Bar
{
    public void Test()
    {
        var result = new Foo().ToString();
    }

    public int Foo()
    {
        return 1;
    }
}

使用 new 关键字,结果是“I'm a Foo!”,没有它,结果是“1”。

除此之外,这里没有什么新鲜事要说:

https://softwareengineering.stackexchange.com/questions/47678/why-do-memory-managed-languages-retain-the-new-keyword

于 2012-04-22T04:46:01.297 回答
1

如果语言支持,它可能意味着静态调用运算符。这也是一种让程序员更清楚分配内存这一事实的方法。

于 2012-04-22T04:39:18.813 回答