引用类型 - 用于创建其值的新关键字

时间:2011-01-24 09:18:31

标签: c# delegates value-type reference-type

我相信有些文献不准确(甚至可能包含错误)或者我的错? 我目前读过的书说(翻译):

  

要创建引用类型的值,   必须使用新关键字。

我不这么认为 - 代表们怎么样?我是正确的还是我理解这段文字?

3 个答案:

答案 0 :(得分:2)

嗯,总是不是真的,不是。一些例子:

  • 字符串连接
  • 委派转化
  • 拳击转换

代码中不会出现new的其他示例包括用户定义的运算符和转换。

答案 1 :(得分:1)

也会使用new关键字隐式创建代理。在幕后,编译器正在为您生成必要的代码。所以

MyEvent += SomeMethod;

变为

MyEvent += new EventHandler(someInstance, SomeMethod);

但确实如此,并非每次创建引用类型时都需要new运算符。像拳击。

答案 2 :(得分:0)

代理是对函数的引用,正如您可能知道的那样,在声明函数时不使用“new”关键字。

但是在声明对象时会使用它,例如:

MyObject obj = new MyObject();