在构造函数之前要求“new”关键字有什么意义?

时间:2012-04-22 04:37:43

标签: c# constructor

代码还有什么意思,如果你没有它?对我来说似乎没必要。

3 个答案:

答案 0 :(得分:2)

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

class Foo
{
    public Foo() {};
}

static Foo Foo()
{
    ...
}

Foo myfoo = Foo(); // what do you want?

答案 1 :(得分:1)

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

答案 2 :(得分: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关键字,结果是“我是Foo!”,没有它,它就是“1”。

除此之外,没有什么新的说法在这里没有说过:

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